常见Java集合的实现细节(一)
2012-07-17 14:50
190 查看
常用的Java集合有三种Set、Map和List,那么它们之间有什么关系呢?一、Set和Map
Set是一种集合元素无序且不可重复的集合,Map代表一种由多个键值对组成的集合,其中键值不可重复,Map集合其实类似于传统的关联数组。表面上看这两个集合之间相似性很少,实际上他们之间有莫大的关联,可以说Map集合是Set集合的扩展。
1、Set和Map的关系
表面上看这两个及合并没有太多的相似之处,但如果只考察Map集合的key,不难发现,这些Map的key具有一个特征:不能重复且无序。也就是说,如果将Map集合的所有key集中起来,这些key就组成了一个Set集合。如果查API文档会发现Map集合提供了Set<K> keySet()这个方法返回所有key组成的Set集合。
由此可见,Map的所有key具有Set集合元素的特征,其实,还可以实现从Set到Map的扩展--对于Map而言,相当于每个元素都是key-value的Set集合。对于一个Map集合而言,它本质上是一个关联数组。
2、HashMap和HashSet
HashMap和HashSet有很多相似之处。对于HashSet而言,系统采用Hash算法决定集合元素的存储位置,这样可以保证快速存取集合元素;对于HashMap而言,系统将value当成key的附属,系统根据Hash算法来决定key的存储位置,这样可以保证快速存取集合key而value总是紧随key存取。
在这里需要指出一点:虽然集合号称存储的是Java对象,但实际上不会真正将Java对象放入Set集合中,而只是在Set集合中保留这些对象的引用而已。也就是说,Java集合实际上是多个引用变量所组成的集合,这些引用变量指向实际的Java对象。[/code]
相关文章推荐
- 常见Java集合实现细节——ArrayList和LinkedList
- 常见Java集合实现细节——List集合与Map集合
- 常见java集合的实现细节
- 常见Java集合实现细节——Iterator迭代器
- 论JAVA集合的实现细节,Map和List的联系
- 程序员的基本功之Java集合的实现细节
- 深入Java集合学习系列:ConcurrentHashMap之实现细节
- 【疯狂Java_突破程序员基本功的16课】charpt3 常见Java集合的实现机制
- java集合之间的关系及实现细节(1)——Set与Map
- 3 Java 集合的实现细节
- Java集合的实现细节—Set集合和Map集合
- Java实现Map集合遍历的四种常见方式与用法分析
- Java之集合的实现细节(一)
- Java集合实现细节
- Java集合的实现细节【1】——Set集合和Map集合
- Java集合实现细节
- Java常见集合例题(1、集合的嵌套遍历。2、获取随机数。3三种方式实现对集合中存储对象的遍历)
- java学习笔记——自定义实现Stack集合
- java 常见的异常大集合
- 黑马程序员——Java5中的线程并发库(二)--Semaphore实现信号灯、其他同步函数、可阻塞的队列、同步集合