浅谈对java集合的理解
2016-09-20 21:13
246 查看
首先是集合的框架图,
图片来源
Java集合是java提供的一个工具包,全部继承自
1、
2、Map是一个映射接口,通过
3、
4、
下面是具体一点的比较:
1.
2.
图片来源
Java集合是java提供的一个工具包,全部继承自
java.util.*。主要包括两大接口
Collection接口和
Map接口以及相关的工具类(
Iterator迭代器接口、
Enumeration枚举类、
Arrays和
Colletions)。
1、
Collection是一个接口,包含
List列表和
Set集合。其中
List是有序的队列,元素值可以重复,索引从0开始,实现类有
LinkedList,
ArrayList,
Vector;而
Set是一个不允许有重复元素的集合,
Set的实现类有
HashSet和
TreeSet。
HashSet依赖于
HashMap,它实际上是通过
HashMap实现的;
TreeSet依赖于
TreeMap,它实际上是通过
TreeMap实现的。
2、Map是一个映射接口,通过
key-value键值对实现。实现类有
HashMap,
TreeMap,
WeakHashMap,
Hashtable。
3、
Iterator是遍历集合的工具,
Enumeration也是遍历集合,但它的的功能要比
Iterator少,只能在
Hashtable,
Vector,
Stack中使用。
4、
Arrays和`Collections是操作数组、集合的两个工具类。
下面是具体一点的比较:
1.
ArrayList,
LinkedList,
Vector,
Stack是List的4个实现类,比较他们的异同。
ArrayList是一个数组队列,相当于动态数组。它由数组实现,随机访问效率高,随机插入、随机删除效率低。
LinkedList是一个双向链表。它也可以被当作堆栈、队列或双端队列进行操作。
LinkedList随机访问效率低,但随机插入、随机删除效率高。
Vector是矢量队列,和
ArrayList一样,它也是一个动态数组,由数组实现。但是
ArrayList是非线程安全的,而
Vector是线程安全的。
Stack是栈,它继承于
Vector。它的特性是:先进后出(FILO, First In Last Out)。
2.
HashMap、
HashTable、
TreeMap的区别
HashMap是键值对的方式存储的,但不能保证次序,单线程;
HashTable与
HashMap存储方式相同,但是是线程安全的;
TreeMap是有序的键值对,基于红黑树排序。
相关文章推荐
- 浅谈Java集合中Array(数组)的应用
- 浅谈Java集合中Array(数组)的应用
- 深入理解java集合的底层操作
- 浅谈个人对Java多态性的理解
- Java泛型集合的理解
- 浅谈Java集合中Array(数组)的应用
- 浅谈模拟java动态代理(自己的理解,里面代码是马士兵老师的代码)
- Java学习第14天:集合框架零接触和基本理解(List和Set)
- 黑马程序员——浅谈java中的集合框架
- 浅谈用java搭建web服务器之Socket编程——更好的理解Apache、Tomcat等软件的工作模式
- (java 必备知识之三) 浅谈java散列原理,为什么java需要散列集合?
- Java 集合中的元素类型为Object的理解
- Java 集合中的元素类型为Object的理解
- 浅谈JAVA集合 Map List Set等java集合类
- 对java集合的理解
- 理解JAVA的集合类型
- 关于java中集合类的理解
- 关于Java中集合框架的层级结构理解
- Java_浅谈集合中自定义元素排序方式
- Java 集合框架的再次理解