List 和 Set 的区别

List 和 Set 的区别

首先了解一下Collection 单列集合体系

List 和 Set 的区别

特性

List接口是 Collection接口的子接口

1)List集合类中元素有序即添加顺序和取出顺序一致)、且可重复
2)Lst集合中的每个元素都有其对应的顺序索引,即支持索引。
3)List容器中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素。

Set接口也是 Collection接口的子接口

1)无序(添加和取出的顺序不一致),没有索引
2)不允许重复元素,所以最多包含一个null
3)Set接口的常用方法和List接口一样,Set接口也是 Collection的子接口,因此,常用方法和Collection接口一样

常用的实现类

list方法常用的实现类有ArrayList、LinkedList 和 Vector。其中ArrayList 最为流行,它提供了使用索引的随意访问,而LinkedList 则对于经常需要从 List 中添加或删除元素的场合更为合适,Vector 表示底层数组,线程安全。

Set方法中最流行的几个实现类是 HashSet、LinkedHashSet 以及 TreeSet。最流行的是基于 HashMap实现的 HashSet;TreeSet 还实现了 SortedSet 接口,因此 TreeSet 是一个根据其 compare() 和compareTo() 的定义进行排序的有序容器。

上一篇:Java学习——集合的使用(三)


下一篇:转 OC之iOS开发常用Unix指令