JAVA的集合类型有哪些
来源:互联网 发布:psp 经典游戏 知乎 编辑:程序博客网 时间:2024/04/28 04:46
Java API中所用的集合类,都是实现了Collection接口,他的一个类继承结构如下:
Collection<--List<--Vector
Collection<--List<--ArrayList
Collection<--List<--LinkedList
Collection<--Set<--HashSet
Collection<--Set<--HashSet<--LinkedHashSet
Collection<--Set<--SortedSet<--TreeSet
Vector : 基于Array的List,其实就是封装了Array所不具备的一些功能方便我们使用,它不可能走入Array的限制。性能也就不可能
超越Array。所以,在可能的情况下,我们要多运用Array。另外很重要的一点就是Vector“sychronized”的,这个也是Vector和
ArrayList的唯一的区别。
ArrayList:同Vector一样是一个基于Array上的链表,但是不同的是ArrayList不是同步的。所以在性能上要比Vector优越一些,但
是当运行到多线程环境中时,可需要自己在管理线程的同步问题。
LinkedList:LinkedList不同于前面两种List,它不是基于Array的,所以不受Array性能的限制。它每一个节点(Node)都包含两方
面的内容:1.节点本身的数据(data);2.下一个节点的信息(nextNode)。所以当对LinkedList做添加,删除动作的时候就不用像
基于Array的List一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了。这就是LinkedList的优势。
List总结:
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的对应存储项。
- JAVA的集合类型有哪些
- java并发集合有哪些
- java集合类框架的基本接口有哪些
- 常用的数据库备份类型有哪些?
- 触摸屏一体机的类型有哪些
- 强制类型转换的注意事项有哪些
- mysql 字段的类型有哪些
- Python的动态有哪些类型?
- 软件文档的类型有哪些?
- 声卡有哪些类型
- HttpEntity类型有哪些
- HttpEntity类型有哪些
- 网站类型有哪些?
- java基础—常用的集合类有哪些?比如List如何排序?
- 网络类型有哪些类型?
- 网络类型有哪些类型?
- 有哪些嵌入式操作系统的类型和CPU的类型 ?
- java 基本类型有哪些,所占字节和范围?
- 统计页面访问量(JSP)
- Objective-C ---内存管理
- 判断请求是否来自手机端
- 四款工具顺利实现Python与JavaScript间的代码转换
- 利用委托自定义事件
- JAVA的集合类型有哪些
- 不清空class下文件
- Android中的各种加密和MD5摘要
- 两款高性能并行计算引擎Storm和Spark比较
- JS学习网站
- 啊哈算法关于快速排序法为什么一定要从右边开始的原因
- python2.7:dic2json 解决中文无法正常显示问题
- java模式之单例模式
- Nginx探索一