近期学习的集合框架学习笔记

来源:互联网 发布:mac开机风扇声音很大 编辑:程序博客网 时间:2024/05/16 03:56


总结了集合框架的3大接口:

List Set  Map

list 接口:继承接口Collection  ,存储一组不唯一(可重复),有序(按元素插入次序,不会重新排序)的对象

Set街口:继承接口Collection  ,存储一组唯一(不允许重复),无序的对象。

//Collection 接口:Collection层次结构中的根接口,

以上两大接口特点是无键 。


Map  就是传说中的键值对 ,键唯一  值不唯一 (允许重复)。


优点: 数组长度一次定死,添加很麻烦 ,集合可以自由添加,长度可根据你添加的数据的个数改变,

List :

ArrayList:

顾名思义 ,数组集合,每个元素都有一个对应的下标,遍历方便,随机访问快,添加删除不方便,例如删除第3个元素,从第4个元素开始,每个元素都会往前挪一位,

LinkedList:

链表结构,可以想象成自行车链条,遍历不是很快 ,但是添加插入删除元素很方便,

Set:不保存重复的元素,最常被使用的测试归属性,查找成为Set中最重要的操作。

HashSet  TreeSet  LinkedHashSet

提及的知识点 :    HashSet使用了散列,

   TreeSet:红黑树结构 ,(又称平衡二叉查找树,一种稳定的数据结构,实现关联数组)

    LinkedHashSet: 散列函数

Map:

特点:将对象映射到其他对象的能力。

Map的实现:

HashMap:

Map基于散列表的实现,取代了Hashtable。插入和查询“键值对”的开销是固定的。

LinkedHashMap:

类似于HashMap,但是迭代遍历它的时候,取得的“键值对”的顺序是其插入的次序,或者是最近最少使用的(LRU)的次序。只比HashMap慢一点点,但是迭代访问时反而更快,因为它使用的链表维护内部次序。(LRU:内存管理的一种算法)

TreeMap:

基于红黑树的实现。查看键或键值对的时候,他们会被排序,由ComparableComparator决定,特点在于,所得到的结果是经过排序的是唯一带有subMap()方法的Map,它可以返回一个子树

WeakHashMap:

弱键(weak key)映射,允许释放映射所指向的对象,这是为解决某类特殊问题而设计的,如果映射之外没有引用指向某个键,则此键可以被垃圾收集器回收。

IdentityHashMap:

使用“==”代替equals()对键进行比较的散列映射,

ConcurrentHashMap:一种线程安全的Map,它不涉及同步加锁,

原创粉丝点击