黑马程序员技术交流社区

标题: Collection,List,Map,Set之间的关系 [打印本页]

作者: 字研字禹    时间: 2013-7-11 18:38
标题: Collection,List,Map,Set之间的关系
本帖最后由 杨兴庭 于 2013-7-12 17:53 编辑

它们几个之间具体是什么关系啊

作者: "O_忆_O    时间: 2013-7-11 18:51
Collection 是对象集合,它包括两个子接口 List 和 Set 。
List中的元素是有序的,元素可以重复,因为该集合体系有索引;Set中的元素是无序的,元素不可以重复。
List 的实现类包括ArrayList, LinkedList和Vector。
ArrayList类:底层的数据结构使用的是数组结构。线程不同步。特点:查询速度很快,增删稍慢。
LinkedList类:底层使用的是链表数据结构。线程不同步。特点:增删速度很快,查询稍慢。
Vector类:底层是数组数据结构。线程同步,导致速度慢,被ArrayList替代了。

Map 是键值对集合。
HashTable 和 HashMap 是 Map 的实现类   
HashTable 是线程安全的,不能存储 null 值   
HashMap 不是线程安全的,可以存储 null 值   
作者: 以防万一    时间: 2013-7-11 19:14
Collection
├ List
│├ LinkedList
│├ ArrayList
│└ Vector
│   └ Stack
└ Set
├ HashSet
│   └ LinkedHashSet
└ TreeSet

Map
├ Hashtable
├ HashMap
│├ LinkedHashMap
│└ WeakHashMap
├ TreeMap
└ IdentifyHashMap

Collection 是对象集合, Collection 有两个子接口 List 和 Set
List 可以通过下标 (1,2..) 来取得值,值可以重复
而 Set 只能通过游标来取值,并且值是不能重复的
ArrayList , Vector , LinkedList 是 List 的实现类
ArrayList 是线程不安全的, Vector 是线程安全的,这两个类底层都是由数组实现的
LinkedList 是线程不安全的,底层是由链表实现的   

Map 是键值对集合
HashTable 和 HashMap 是 Map 的实现类   
HashTable 是线程安全的,不能存储 null 值   
HashMap 不是线程安全的,可以存储 null 值

183532n22noeye3ym6aee4.png (13.61 KB, 下载次数: 0)

183532n22noeye3ym6aee4.png

作者: dunwu    时间: 2013-7-11 19:21
实现关系

实现关系.png (14.12 KB, 下载次数: 0)

实现关系.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2