黑马程序员技术交流社区

标题: 这道题该如何回答会比较完美 [打印本页]

作者: Saner    时间: 2014-3-28 09:16
标题: 这道题该如何回答会比较完美
Collection和Collections有什么关系?List和Set有什么异同点?Map有哪些常用类,各有什么特点?
作者: 林发明    时间: 2014-3-28 09:57
我的基础测试题也有这个:把我的分享给你(会多少写多少)
1、Collection是集合框架中的一个接口,实现这个接口的子类都可以按照相应的规则存储对象。
Collections是一个集合框架工具类,它里面的方法都是静态的,这些方法用来操作Collection子类中的元素,比如排序、查找等

2、List和Set的不同点:
                 List:元素是有序的,可以重复出现,每个元素都有自己的索引地址
                Set:元素是无序的,存入顺序和取出顺序,可能不一致,元素不能重复出现,
相同点:List和Set都是继承至Collection接口,都可以使用Collections集合工具类对元素进行操作

3、Map集合体系
|--Hashtable:底层是哈希表数据结构,不可以存入null键和null值,该集合线程是同步的,在jdk1.0后使用,效率低
|--HashMap:底层是哈希表数据结构,可以使用null键和null值,该集合是非同步的,jdk1.2后使用,效率高
|--TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合的键 进行排序。

作者: Saner    时间: 2014-3-28 10:09
谢谢@笔记本有点卡点了个反对!我在完善一下顺便把这个学习点理解一下!
作者: 一世英明    时间: 2014-4-2 00:09
Collection是集合类,Collections是集合的帮助类,里面有一些操作集合的 方法.
作者: 一世英明    时间: 2014-4-2 00:11
Collection是集合类的上级接口,继承与她的接口主要有Set 和 List.Collections是针对集合类
作者: 一世英明    时间: 2014-4-2 00:19
她提供一系列静态方法实现对各种集合的搜索,排序,线程安全等操作!
首先,List 与 Set 具有相似性,她们都是单列元素的集合,所以,她们有一个共同的父接口叫
Collection.
Set 里面不允许有重复的元素,所谓重复,即不能有两个相等(注意,不是仅仅是相同)的对象,
即假设Set 集合中有了一个A 对象,现在我要向Set集合再存入B对象,但B对象与A对象equals相等
则B对象存储不进去,所以,Set集合的add方法有一个boolean 的返回值,当集合中没有某个元素,此时add
方法可成功加入该元素时,返回结果为false.Set取元素时,没法说取第几个,只能以Iterator
接口取得所有的元素,在逐一遍历各个元素;

作者: 一世英明    时间: 2014-4-2 00:27
List表示有先后顺序的集合,注意,不是那种按年龄,按大小,按价格之类的排序.
当我们多次调用add()方法时,每次加入的对象就像火车站买票有排队顺序一样,按
先来后到的顺序排序.有时候,页可以插队,即调用add(int index,Object)方法
就可以指定当前对象在集合黄总的存放位置.一个对象可以被反复存储进List中
没调用一次add方法,这个对象就被插入进集合中一次,其实并不是把这个对象本身
存储进了集合中,而是在集合中用一个索引变量指向这个对象,当这个对象
被add多次时,即相当于集合中有多个索引指向了这个对象.
List 除了可以以Iterator接口取得所有的元素,再逐一遍历各个元素之外,还可以调用get(index i)
来明确说明取第几个..


作者: 一世英明    时间: 2014-4-2 00:31
Map 与list 和Set  不同,它时双列的集合,其中有put方法,定义如下:put(obj key,obj value),
每次存储时,要存储一对key/value,不能存储重复的key,这个重复的规则也是按
equals 比较相等.取则可以根据key获得相应的value.
即 get(Object key) 反回值为key,所对应的value.
另外,页可以获得所有的key的结合,还可以获得所有的value 的结合,
还可以获得key 和value 组合成的Map.Entry  对象的集合;




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