java.utils 中的几种Map,List,Set

Collection:集合,Set和List接口的根接口。提供在集合中添加、删除、查询元素的基本操作。

Set:不允许重复的集合

HashSet:默认的底层实现为HashMap。可以传入一个Map作为底层实现,对应的构造函数签名为 public HashSet(Collection<? extendsE> c)。

LinkedHashSet:继承HashSet,底层实现为LinkedHashMap。

TreeSet:按序存储,默认的底层实现为TreeMap。可以传入一个Map作为底层实现,对应的构造函数签名为TreeSet(NavigableMap<E,Object> m)。

List:允许重复的集合,面向位置的操作,双向遍历

ArrayList:底层实现为数组,默认的初始化大小为10,每次增加的时候大小增加一半。newCapacity= (oldCapacity * 3)/2 + 1;elementData= Arrays. copyOf(elementData, newCapacity);

LinkedList:底层实现为链表

Vector:与ArrayList基本一样,不同的是它包含访问和修改向量的同步化方法(使用 synchronized进行同步)。

Map
java.utils.Map定义了一组Map的接口,java.utils.AbstractMap实现了Map的部分接口。

HashMap:基于哈希的表,哈希值为key.hashCode的哈希。支持null作为键值,不支持多线程同步。多线程时,需要使用Collections.synchronizedMap方法进行同步。

HashTable:基于哈希的表,哈希值直接使用key.hashCode,为不支持null作为键值。使用修改计数进行同步,Iterator的修改计数expectedModCount同HashTable的修改计数modCount不一致时抛出异常ConcurrentModificationException。

LinkedHashMap:继承HashMap,跟踪访问/插入轨迹,迭代时按照访问/插入顺序进行迭代。函数签名如下:

java.util. LinkedHashMap .LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder)

TreeMap:红黑树实现的Map,按照key的自然顺序进行迭代。

Stack
继承Vector,添加了栈特有的方法,Vector原来的方法对外可见。(Java继承默认为public)

你可能感兴趣的:(java)