码迷,mamicode.com
首页 > 编程语言 > 详细

java集合

时间:2017-07-27 18:14:34      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:自定义类   表数   集合   重复   cti   equal   set   linked   通过   

这里对java中常用的集合做一个小结

单列集合:Collection 单列集合的根接口

     List系列:有序,不唯一

       1,ArrayList  底层使用Object数组,查询快,插入删除慢

       2,LinkedList 底层使用链表数据结构,查询慢,增删快,有removeLast()方法,而ArrayList中没有

       3,Vector底层也采用Object数组,但是是线程安全的,操作效率低

      

     Set系列:无序,唯一

        1,HashSet 底层采用哈希表,存取速度快

       存储原理:当一个元素添加进hashSet时,会先调用该对象的hashCode方法得到哈希码值,将哈希码值通过计算得到该对象的存储位置,如果这个位置没有元素,那么该对象会被存储,如果有元素会调用该对象的equals方法

       返回true则该对象不会被存储,因此存入进hashSet中的对象一般会重写hashCode和equals方法

        2,TreeSet 底层采用红黑树,对存储进该集合中的元素进行排序存储

       TreeSet添加元素:如果添加的元素有自然顺序,那么TreeSet会按元素的自然顺序进行排序存储

                 如果添加的元素没有自然顺序,那么添加的对象排序时需要一个比较器

                              内部比较器:定义在自定义类的内部,实现Comparable接口

                              外部比较器:定义在自定义类的外部的自定义比较器类,实现Comparator接口,在创建TreeSet对象时传入一个自定义比较器类对象

双列集合:Map 双列集合的根接口, 存储key-value键值对,键不可重复,值可重复

       1,HashMap:底层也是hash表

        2,TreeMap:底层采用红黑树

       3,HashTable:线程安全,底层采用hash表,HashMap是其轻量级实现但是线程不安全

 

 

  

java集合

标签:自定义类   表数   集合   重复   cti   equal   set   linked   通过   

原文地址:http://www.cnblogs.com/xiaoyugg/p/7246030.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!