Java Colections 集合类 —— List、ArrayList、Set(HashSet)

时间:2021-01-23 17:03:01

0. List<T> 是一个接口

  • 该接口定义的高级成员函数有:

    • contains() ⇒ 是否包含;
      String[] people;
      List names = Arrays.asList(new String[]{"zhang", "san"});
      for (String p: people) {
          if (names.contains(p)) {
              ...
          }
      }

1. 删除元素的标准写法

public void removeObserver(Observer o) {
    int i = observers.indexOf(o);
    if (i >= 0) {
        observers.remove(i);
    }
}

2. HashSet 的应用场景

Set 中最常被使用的是测试(判断)归属性(基于对象的值),可以很容易地询问某个对象是否在该 Set 中。正因如此,查找(lookup)就成为了 Set 中最重要的操作。因此通常都会选择一个 HashSet 的实现,其专门对快速查找进行了优化。

3. TreeSet

  • TreeSet 将元素存储在红黑树数据结构中;

    • 使用 TreeSet 实现对结果的排序
    SortedSet<Integer> intset = new TreeSet<Integer>();
  • HashSet 使用的是哈希散列函数
  • LinkedHashSet 也是使用了散列的方式以加快查询的速度,又通过链表来维护元素的插入顺序;