Java集合框架

参考博客(博主记载很详细,值得学习):https://blog.csdn.net/f45056231p/article/details/81047081

一、Collection<接口>

  1. List:有序(元素存入集合的顺序和去除的顺序一致),元素都有索引,允许重复元素。

          ①子类一Vector:底层的数据结构是可变长度的数组。线程同步,增删和查询都很慢。

          ②子类二ArrayList:底层的数据结构是可变长度数组。线程不同步,替代了Vector,增删速度不快。查询速度很快(因为在内存中是连续空间)。

          ③子类三LinkedList:底层的数据结构是链表,线程不同步。增删速度很快。查询速度较慢(因为在内存中需要一个个查询,判断地址来寻找下一元素)。

 

     2.Set:无序(存入和取出顺序可能不一致),不允许重复元素,必须保证元素的唯一性。

          ①子类一:HashSet,底层的数据结构是哈希表(散列表)。无序,比数组查询效率高,线程不同步。

              根据哈希表冲突的特点,为了保证哈希表中元素的唯一性。

              该容器中存储元素所属的类应该复写Object类中的hashCode、equals方法。

              HashSet的子类:LinkedhashSet:有序

           ②TreeSet:底层数据结构是二叉树。可以对Set集合的元素按照指定规则进行排序。线程不同步。

               add方法新添加元素必须可以同容器已有的元素进行比较,

               所以元素所属类应该事先Comparanle接口的compareTo方法,以完成排序。或者添加Comparator比较器,实现compare方法。

二、Map<K, V>接口

    1、子类一Hashtable:底层是哈希表数据结构,线程同步,不允许存储null键和null值。

          Hashtable子类Properties:用来存储键值对型的配置文件的信息,可以和IO技术相结合

    2、子类二HashMap:底层是哈希表数据结构,线程不同步,允许存储null键和null值,替代了HashTable

    3、子类三TreeMap:底层是二叉树结构。线程不同步。可以对map集合中的键进行指定顺序排序。

     注意:HashSet和TreeSet底层是使用HashMap和TreeMap实现的,值操作键,就是Set集合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值