Java中各种集合总结(一)

(一)集合与数组

数组:(存基本数据类型)-->存对象的一种容器,长度固定,【不适合在对象数量未知的情况下使用】

集合:(存对象,对象类型可以不一样)-->长度可变,可在多数情况下使用。

(二)层次关系

1.0 如图所示:图中,实线边框的是实现类,折线边框的是抽象类,而点线边框的是接口:

 

2.0 其中集合的 详解

①Collection接口【集合类  ”根接口“;Java中没有这个接口的直接实现类】----(有两个儿子)---->

    List:(有序、重复)--(又有俩儿儿子)-->

             ArrayList:底层数据结构--->【动态数组   ;线程不安全,效率高】--->查询快,增删慢【移动所有数据】。

             LinkedList :底层数据结构--->【链表;线程不安全,效率高】--->查询慢,增删快。【特别适用于批量插入删除数据

             Vector:底层数据结构--->【数组;线程安全,效率低】-->查询快,增删慢

     Set:(无序、唯一)--->提供了按索引访问的方式。

              HashSet:底层结构--->【哈希表---依赖俩儿方法->hashCode()和equals()】(一般规则:对象equals 是true的话,hashCode需要相同,但是hashCode相同的对象不一定equals,这就是所谓的冲突现象,但是有不同的冲突解决方法。你的hashCode()设计的好的话冲突也就小了。比如楼上给出的超出int范围之后这种hashCode()实现,对象肯定是无数的,但是hash实现是有限的呢,所以冲突了。)

              TreeSet: 底层结构--->【红黑树】:一种自平衡的二叉树。返回值是否为0-->唯一性;

               LinkedHashSet【有序,不重复】:底层结构--->【链表和哈希表】链表保证有序;哈希表保证-->唯一

②Map:(键值对、键唯一、值不唯一)与Collection接口独立的,另一个接口。--->Map包含了key-value对。Map不重复的key,但可有相同的value。

               HashMap:底层结构-->【哈希表;线程不安全,效率高--依赖俩儿方法-->hashCode()和equals()判断是否添加到集合】

               Hashtable:底层结构--->【哈希表;线程安全,效率低】-->依赖俩儿方法->hashCode()和equals()

               LinkedHashMap: 底层结构--->【链表和哈希表】:链表保证有序;哈希表保证唯一。

               TreeMap: 底层结构--->【红黑树】返回值是否为0-->唯一性

③Iterator:所有的集合类-->都实现这个接口。【遍历集合元素的接口】用法:

             (1)hasNext()是否还有下一个元素。

             (2)next()返回下一个元素。

             (3)remove()删除当前元素。

3.0 几种重要接口和类的对比:

 

             

             

 

转载于:https://www.cnblogs.com/not-alone/p/8536754.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值