Java集合类有两个根接口:collection和map
Collection:
List:是存储有序但是允许重复的集合
Arraylist和vector:都是基于array实现list类,本质上是顺序线性表,因为受array的限制,所以性能上也不可能超 越array.arraylist和vector唯一的区别就在于vector是线性安全的,而arraylist是不同步,所以性
能上要比vector优越一点。
Linkedlist不是基于array实现的,所以性能上不受array的限制,本质上是双向链表。Linkedlist的优势在于进行添加、删除操作时,不必像基于array实现的list类一样,必须进行大量数据的移动。
Set是存储无序但是不允许重复的集合,虽然也实现collection接口,但基础则是map
Hashset:基于哈希表实现的集合,存储和查找的性能比较好
Treeset:是sortedset的唯一实现类,保证集合里的元素处在一个有序的状态。
Map是一个映射类型的集合 key不能重复 value可以重复
Hashmap和hashtable的区别就在于hashtable是线性安全的,且所有键和值和必须非空,而hashmap是不同步,且允许存在且只存在一个键值为空的映象。
Treemap是键值按升序排列的一个映像的集合