Java集合

来源:互联网 发布:不是我不爱你网络歌手 编辑:程序博客网 时间:2024/06/03 21:33
  1. List
    常用的有ArrayList,Vector,LinkedList。
    其中ArrayList和Vector底层通过数组实现,它们两者几乎使用了相同的算法,唯一的区别在于vector对绝大部分操作都做了线程同步。
    LinkedList使用了循环双向列表数据结构。
  2. Map
    常用的Map为Hashtable,HashMap,LinkedHashMap和TreeMap。
    Hashtable和HashMap内部有一些小差别,Hashtable是线程安全的实现,而HashMap没有考虑线程安全。Hashtable不允许key或者value为null,而HashMap可以。另外,两者的hash算法,以及hash到内存索引的映射算法也是不一样的。
    以HashMap为例,简单的说,就是将key进行哈希计算,将得到的哈希值映射到内存地址,数据存储到相应的内存地址(数组索引)。底层数据结构使用的是数组。
    LinkedHashMap在HashMap的基础上,增加了一个链表,用以存放元素的顺序。
    TreeMap则要求元素的key实现Comparable接口。
  3. Set
    元素不能重复
    最为重要的是HashSet,LinkedHashSet和TreeSet。它们是相应Map类的封装,
原创粉丝点击