Java集合需要记忆的部分

//仅记录需要记忆的部分

0、总体框架

Java集合需要记忆的部分

1、Collection

Collection是一个接口,是高度抽象的集合,包含集合的基本操作:添加、删除、清空、遍历(读取)、是否为空、获取大小等。

1.1、List是有序的队列,每一个元素都一个索引,第一个元素的索引值是0,与set不同,List允许重复的元素。注意indexof和lastindexof的不同。

1.2、set不允许重复

1.3、AbstractCollection是一个抽象类,实现了Collection的大部分函数,除了size和迭代器。方便其他类实现collection。

1.3.1、AbstractList

1.3.2、AbstractSet

1.3.1.1、ArrayList 是数组队列,相当于动态数组,非线程安全。使用场景:需要快速随机访问元素

1.3.1.2、LinkedList是一个双向链表,注意其常用api,可以实现队列和栈结构。LinkedList顺序访问高效,而随机访问效率比较低,因为双向链表和索引值联系起来,将索引值与链表中间的索引比较,小,从头开始,大,从后面开始。所以遍历链表用for(Integer i : list),千万别用for(int i : i < size; i++)访问。使用场景:需要快速插入、删除元素

1.3.1.3、vector是矢量队列,是线程安全的。使用场景:需要在多线程操作,并且list同时背多个线程操作。

辨析:arraylist和linkedlist、arraylist和vector

 

1.2、Map