Skip to content

9. 集合

9.1 Java 集合框架

9.1.1 集合接口和实现分离

在集合中定义了接口, 实现和接口分离可以更好的为程序编写更多可能性的算法体系

9.1.2 Collection 接口

在 Java 类库中, 集合类的基本接口是 Collection 接口

java
public interface Collection<E> {
    boolean add(E element); 
    Iterator‹E> iterator ();
}

9.1.3 迭代器

迭代器包含 4 个方法

java
public interface Iterator<E>
{
    E next ();
    boolean hasNext();
    void remove();
    default void forEachRemaining(Consumer<? super E> action);
}

迭代器可以通过 while 来进行循环

java
CollectionString> c= . . 
Iterator<String> iter = c.iterator (); 
while (iter.hasNext ()) {
    String element = iter.next (); 
    // do something with element
}

也可以使用 foreach 循环

for(String element : c){
    // do something with element
}

可以使用 lambda 表达式

iterator.forEachRemaining(element -> do something with element);

9.1.4 泛型实用方法

9.2 集合框架中的接口

9.3 具体集合

9.3.1 链表(LinkedList)

链表的图形化表示

链表删除元素会比较轻松, 只需更新删除元素周围的链接即可

9.3.2 数组列表(ArrayList)

多线程同时访问的时候使用 Vector, 非线程安全的时候使用 ArrayList

9.3.3 散列集(HashSet)

  • 根据散列码来存储数据
  • bucket 数量一般设计为预计元素的 75%-150%
  • 装填因子在达到指定预期的时候会扩充为 2 的下一个幂值

9.3.4 树集(TreeSet)

有序集合, TreeSet 使用红黑树生成的数据有序集合

  • 树集必须可以比较元素

9.3.5 队列(Queue)与双端队列(Deque)

9.3.6 优先队列

将最小的数据从队列中移除

9.4 映射

9.4.1 基本映射操作

HashMap , TreeMap 都实现了 Map 接口

9.4.2 更新映射条目

9.4.3 映射视图

9.4.4 弱散列映射


说明

创建时间: 2023-11-19 19:27:00 , 最后编辑于 2023-11-19 20:45:00