在我们学习java的集合时,我们初步会学习到两种集合类型,它们分别是 List,Set 下面我们分别来学习这两个个接口
List接口:
List接口继承了Collection接口
List一般我们会使用两种实现类
- ArrayList:底层数据结构是一个可变数组,以1.5倍的速度扩容,拥有数组的一切特征,查询快,增删慢,效率高,但是线程不安全
- LinkedList:底层数据结构是链表,拥有链表的一切特征,查询慢,增删快,效率高,线程不安全
List接口特点:
List最重要的特点就是:它保证维护元素特定的顺序,允许插入多个空值,顺序插入顺序输出
ArrayLIst图解:
可以看出储存方法是数组
LinkedList图解:
可以看出储存方法是链表
Set接口:
Set接口也继承了Collection接口
Set一般我们会使用两种实现类
- HashSet:是一个集数组,链表,红黑树为一体的存储结构,性能比较中和,底层现实是HashMap
- LinkedHashSet:类似于HashSet
Set接口特点:
Set最重要的特点就是:此接口是无序的,不包含重复的元素,不重复的方法是因为比较hashcode和使用equals方法比较
HashSet图解: