Java集合类

单列集合:

Collection 单列集合的根接口(包含List接口和Set接口)

  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:底层也是哈希表。

    2,TreeMap:底层采用红黑树。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值