总结
豆包 AI 助手文章总结
首页 > Java > Java基础 > 正文

java集合有哪些

angryTom
发布: 2019-11-14 10:10:40
原创
3492人浏览过

java集合有哪些

java集合有哪些

Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下: 

Collection

Collection

Collection

立即学习Java免费学习笔记(深入)”;

Collection

Collection

Collection

1.jpg

Vector

1) 底层数据结构是数组,查询快,增删慢

2)线程安全,效率低

基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用,它不可能走入Array的限制。性能也就不可能超越Array。所以,在可能的情况下,我们要多运用Array。另外很重要的一点就是Vector“sychronized”的,这个也是Vector和ArrayList的唯一的区别。 

ArrayList

1).底层数据结构是数组,查找快,增删慢。

2). 线程不安全,效率高

同Vector一样是一个基于Array上的链表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些,但是当运行到多线程环境中时,可需要自己在管理线程的同步问题。 

LinkedList

1) 底层数据结构是链表,查询慢,增删快

2)线程不安全,效率高

LinkedList不同于前面两种List,它不是基于Array的,所以不受Array性能的限制。它每一个节点(Node)都包含两方面的内容:

1. 节点本身的数据(data);

2. 下一个节点的信息(nextNode)。所以当对LinkedList做添加,删除动作的时候就不用像基于Array的List一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了。这就是LinkedList的优势。 

Hashset集合:

1) 底层数据结构是哈希表,哈希表依赖两个方法hascode ()和equals()方法

2)两个方法的执行顺序:

首先判断hascode()值是否相同

是:继续执行equals()方法,看其返回值

是true:说明元素重复,不添加

是false:就直接添加元素

否:就直接添加到集合

Treeset集合:

1)底层数据结构是二叉树

总结: 

1. 所有的List中只能容纳单个不同类型的对象组成的表,而不是Key-Value键值对。例如:[ tom,1,c ]; 

2. 所有的List中可以有相同的元素,例如Vector中可以有 [ tom,koo,too,koo ]; 

3. 所有的List中可以有null元素,例如[ tom,null,1 ]; 

4. 基于Array的List(Vector,ArrayList)适合查询,而LinkedList(链表)适合添加,删除操作。 

HashSet:虽然Set同List都实现了Collection接口,但是他们的实现方式却大不一样。List基本上都是以Array为基础。但是Set则是在HashMap的基础上来实现的,这个就是Set和List的根本区别。HashSet的存储方式是把HashMap中的Key作为Set的对应存储项。

php中文网,大量的免费Java入门教程,欢迎在线学习! 

以上就是java集合有哪些的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
豆包 AI 助手文章总结
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号