浅谈对java集合的理解
来源:互联网 发布:永久域名 编辑:程序博客网 时间:2024/05/22 13:20
首先是集合的框架图,
图片来源
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
是有序的键值对,基于红黑树排序。 2 0
- 浅谈对java集合的理解
- 对java集合的理解
- 浅谈个人对Java多态性的理解
- 浅谈对java多态的理解
- 浅谈Java中对线程的理解
- 对JAVA的集合的理解
- 对java泛型集合的理解
- java基础对集合的理解
- 对java集合框架的理解
- 对集合的理解
- 浅谈对Java中ThreadLocal类的理解
- 浅谈对JAVA线程池的理解(一)
- 浅谈对java线程池的理解二
- 浅谈对rss的理解
- 浅谈对Window的理解
- 浅谈对ActiveMQ的理解
- 浅谈对this的理解
- 浅谈对spring的理解
- unity 编写代码日常(一)
- 奇虎360_2017校园招聘笔试编程题第二题
- SEO优化第一步
- 享元模式(Flyweight)
- 2013计算机视觉代码合集(一、二)
- 浅谈对java集合的理解
- 安卓四大组件之Service
- Android-Skillful-Craftsman(Android能工巧匠)
- ab压力测试
- 基于CentOS的nfs文件系统搭建
- 大数据系列修炼-Scala课程37
- HDU 5901 Count primes【数论】
- My97 WdatePicker 属性
- hdu5207Greatest Greatest Common Divisor+枚举