0%

关于Java容器

Conllection

是否有序 允许元素重复

List

常用实现类 是否有序 允许元素重复
ArrayList
LinkedList

List接口是对Conllection的简单扩充。ArrayList是通过数组形式进行存储,适合数据的访问,LinkedList是通过链表方式实现,适合数据的插入和删除。ListIterator提供了对List进行双向遍历的方法。

Set

常用实现类 是否有序 允许元素重复
AbstractSet
HashSet
TreeSet 是(用二叉树排序)

Set接口也是对Conllection的扩展。HashSet可以快速定位一个元素,数据对象需要实现hashCode()方法。

Map

常用实现类 是否有序 允许元素重复
AbstractMap key值唯一,value可重复
HashMap key值唯一,value可重复
TreeMap 是(用二叉树排序) key值唯一,value可重复

与Set类似

所有容器的区别与联系

Vector:基于Array,性能受限,线程同步

ArrayList:基于Array,性能受限,线程不同步

LinkedList:Node包含:1.data;2.nextNode。删除和插入是优势

HashSet:在HashMap的基础上实现,存储为HashMap的Key,所以不允许重复

LinkedHashSet:HashSet的一个子类,一个链表

TreeSet:SortedSet的一个子类,是通过SortedMap实现的,所以是有序的

Conllection

​ — List:

​ — ArrayList/LinkedList/Vector

​ — Set:

​ — HashSet/TreeSet

Map

​ — HashMap

​ — HashTable

​ — TreeMap

Conllections

一个utils类,提供搜索,排序,线程完全化等操作

max(),sort()…

Conllection通过iterstor()遍历元素