黑马程序员技术交流社区
标题:
List, Set, Map是否继承自Collection接口?
[打印本页]
作者:
浅一蓝
时间:
2014-2-23 22:11
标题:
List, Set, Map是否继承自Collection接口?
求解答啊
作者:
itpower
时间:
2014-2-23 22:24
集合框架分为两大派系
|--单列集合 Coloection 接口
|--List 接口 有序的,可重复,可根据角标操作元素
|--ArrayList 底层数据结构是数组,查询速度快,增删稍慢,线程不同步的,
|--LinkedList 底层数据结构是链表,增删速度快,查询稍慢,线程不同步的
|--Vector 底层数据结构是数组,增删查都稍慢,线程同步的,jdk1.0出现的,那时候还没有集合框架,后来被ArrayList取代
|--Set 接口 无序的,不可重复,因为底层是一个Map集合,只使用了Map的key,要保证键的唯一性
|--HashSet 底层数据结构是哈希表,线程不同步的,无序,高效,必须保证元素的唯一性,是通过调用hashCode和equals方法来判断元素是否相同的
|--TreeSet 底层数据结构是二叉树,线程不同步的,特点就是可以对集合中的元素进行排序,前提是要指定排序规则,有两种方式
1,让元素自身具备比较性,如果元素自身不具备比较性,可以让元素实现Comparable接口,并覆盖compareTo方法来指定比较规则
2,如果元素具备的比较性并不是我们所需要的,可以自己定义一个比较器,实现Comparator接口,并覆盖compare方法来指定比较规则,通过构造函数传递给集合即可
|--要迭代以上集合都是通过迭代器来完成的,通过调用iterator方法来返回一个迭代器Iterator(接口);通过这个迭代器来迭代元素
|--双列集合 Map
|--Hashtable 底层是哈希表结构,线程同步的,不可以存储null键null值,jdk1.0出现,后来被HashMap所替代,
|--HashMap 底层的数据结构是哈希表,线程不同步的,可以存储null键null值,
|--TreeMap 底层是二叉树数据结构,线程不同步,特点是可以对键进行排序,排序方式同TreeSet相同,
|-- Map 集合和Collection的不同点是,Map集合一次是存一对元素,键值对形式(键和值存在着眏射关系),而Collection一次只存一个元素
|-- Map 集合自身并没有迭代方法,但是可以通过keySet和entrySet方法来讲Map集合转换成Set集合在进行迭代,
keySet返回的是集合中所有的键,在通过Map集合中的get(key)来获取对应的值,而entrySet方法返回的是Map.Entry这种数据类型,里面保存的是所有键值对的映射关系
list和set是实现了Collection接口的,而map不是的,他和collection属平级的
作者:
Amorvos
时间:
2014-2-23 22:32
Java的集合类主要有两个接口类派生,Collection和Map是JAVA集合框架的根接口。这两个接口又包含一些子接口或实现类。
Collection体系中分为有续集和List和无序集合Set,Queue提供队列实现类似于List,
Map体系用于保存具有映射关系的的数据。
作者:
chenfc8578
时间:
2014-2-23 23:01
List和Set是Collection子接口,他们只能存放单值的接口。而且Map接口是存放一对值的接口也就是键<-->值,Map接口和Collection接口是平级的,他们都是集合的最大父接口。
作者:
张继鲁
时间:
2014-2-24 11:08
List和Set是继承自Collection接口而Map是独立的接口,不继承Collection接口。
作者:
qqwwdr
时间:
2014-2-24 11:41
itpower 发表于 2014-2-23 22:24
集合框架分为两大派系
|--单列集合 Coloection 接口
|--List 接口 有序的,可重复,可根据角 ...
这个太全面了,可以留做笔记了,顶一个:D
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2