Java中List、Set单列集合的特点及使用
单列集合框架
Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素。List和Set是它的子接口
List:是有序的集合,存储和取出元素顺序相同。允许存储重复的元素。有索引,可以使用普通的for循环
Set:不允许存储重复元素。没有索引(不能使用普通的for循环遍历)。
List详解:
由于List是有索引的,所以可以根据索引,在特定位置进行增添、返回、移除、替换数据
public void add(int index,E element)
public E get(int index)
public E remove(int index)
public E set(int index,E element)
ArrayList
底层数组结构,增删慢,查找快。每增添一个元素,都需要创建一个新的ArrayList,将旧的数据复制再加上新的元素。
LinkedList
底层链表结构,查找慢,增删快。链表的头尾是好查询的,所以有大量的头元素和尾元素的增删改查。
Vector
单线程数组
Set详解
HashSet
元素无序存储,并且元素不重复。
增添元素时,依靠HashCode()方法计算哈希值,
如果没有该哈希值,则进行存储,返回为true。
如果有该哈希值,则通过equals()方法进行两个元素值的判断,如果两个元素相等,则会产生哈希冲突,返回false。如果不相等,就把元素存储到集合中,返回true。
LinkedHashSet
底层是哈希表+链表,链表可以记录元素的顺序,所以可以保证元素有序。