Java中各种集合总结

Posted not-alone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 几种重要接口和类的对比:

技术分享图片

 

             

             

 


以上是关于Java中各种集合总结的主要内容,如果未能解决你的问题,请参考以下文章

Java各种集合容器的总结

7-26总结 泛型的用法,以及各种集合的使用.

Java中各种集合问题

Java中List集合的三种遍历方式(全网最详)

Java开发中各种集合框架简介

JAVA常用知识(mian shi)点总结---集合