常用集合体系
集合也叫容器,用于存储对象数据。
Collection详解
一、主要方法
返回值 | 方法名 |
---|
boolean | add() |
boolean | addAll() |
void | clear() |
boolean | cotains() |
boolean | containsAll() |
boolean | equals() |
int | hashCode() |
boolean | isEmpty() |
Iterator<\E> | iterator() |
boolean | remove() |
boolean | removeAll() |
int | size() |
Object[] | toArray() |
二、List详解
List是有序的接口集合,可以理解为可变的数组
常用方法
返回值 | 方法名 |
---|
E | get() |
int | indexOf() |
void | set() |
int | size() |
特点
1、插入或删除一个元素,该元素后面的所有元素的索引都需要改变
2、元素可以重复
ArrayList详解
ArrayList底层实现是数组原理
特点
1、元素可以重复,允许null元素存在
2、有序的集合,长度不固定
3、不是线程安全的,查询效率高
4、在添加数据的时候,初始长度为10,后续会以5个长度来增加集合的长度
LinkedList详解
LinkedList底层数据是链表结构原理,也可以将链表用作堆栈或队列。
栈
队列
链表
链表结构,插入、删除和修改效率高
主要方法
返回值 | 方法名 | 备注 |
---|
void | addFirst() | 将指定元素插入列表开头 |
void | addLast() | 将指定元素插入列表结尾 |
E | removeFirst() | 移除并返回列表第一个元素 |
E | removeLast() | 移除并返回列表最后一个元素 |
E | pop() | 把队列看成一个栈,第一个元素出栈 |
void | push() | 压栈,从栈顶添加一个元素 |
特点
1、不是线程安全的
2、增删改,性能高
Vector详解
特点(主要与ArrayList的区别)
1、底层也是数组
2、线程安全的
3、性能低
三、Set详解
一个不包含重复元素且无序的Collection,并且最多只有一个null元素。重复元素指equals()和hashCode()都一样的元素。
HashSet
底层是由哈希表实现,元素无序,允许null元素存在,且不是线程安全的。
LinkedHashSet
底层是由哈希表和链接实现的,可以预知迭代顺序,即按照将元素插入到set中的顺序进行迭代。
TreeSet
底层是基于TreeMap的NavigableSet实现的。使用元素的自然顺序对元素进行排序,或根据Comparator进行排序。
自然顺序:比较元素的ASCII码的顺序。
Comparator排序:自定义比较规则,实现Comparator接口,重写comparaTo()方法。
特点
1、元素唯一性
2、可自定义排序
3、不允许null元素存在
4、不是线程安全的
以上是对Collection集合的总结,方法基本是实现Collection的方法,区别都在特点里。