Java里的集合--主要区别
Collection 集合接口,指的是 java.util.Collection接口,是 Set、List 和 Queue 接口的超类接口。
List:
List是关注事物索引的列表。
List中可以有重复元素。
List中可以有null值。
List用来存放同一类型的数据,只能一个一个存放,不能存放键值对。
List是有顺序的存储。
List主要用到Vector,ArrayList,LinkedList。
Vector:是基于array的List,在array的基础上添加了一些功能,是线程安全的。
ArrayList:是基于array的List,非线程安全的。
LinkedList:不是基于array的List相当于C++中的链表,它每一个节点都包含两方面的内容:1.节点本身的数据;2.下一个节点的信息。所以当对LinkedList做添加,删除动作的时候就不用像基于Array的List一样,必须进行大量的数据移动。
因此vector ArrayList适用于查询,Linkedlist适用于添加删除。
set:
set实现基础是map。
set存储键值对格式数据。
set不允许重复。
set主要用到HashSet,LinkedHashSet,TreeSet。
HashSet:无顺序。
LinkedHashSet:HashSet的子类,是一个链表,插入顺序排列。
TreeSet:自然顺序排列。
Queue:
Queue用于保存将要执行的任务列表。
LinkedList 同样实现了Queue接口,可以实现先进先出的队列。
PriorityQueue 用来创建自然排序的优先级队列。
人生如水,不争高山,自然愈下,三年又三年。——struggle!