黑马程序员技术交流社区
标题:
集合框架问题
[打印本页]
作者:
鲁中需
时间:
2012-10-23 21:48
标题:
集合框架问题
本帖最后由 鲁中需 于 2012-10-25 21:57 编辑
List、Map、Set三个接口,存取元素时,各有什么特点?
作者:
葬天
时间:
2012-10-23 22:23
Set, List和Map三种体系,
其中Set代表无序、不可重复的集合;
List代表有序、重复的集合;
而Map则代表具有映射关系的集合。
作者:
林志进
时间:
2012-10-24 00:08
这个问题就比较广泛了,这三个体系的子类也各有不同的存取方法,详细的话还是参考集合框架的视频吧。简单说下比较大的区别:
1.List;元素是有序,元素可以重复,因为该集合有索引。所以所有操作操作角标的特有方法只有list集合有,而set和map是不具备的,像这些remove、contains判断元素是否相同的方法,都会调用 集合内部对象的equals方法
2Set: 元素是无序的,元素不可重复.HashSet底层的数据结构是哈希表,比较元素是否相同:先比较 hashCode后equals 。hashCode一致不一定是一个对象 (比如String常量和new一个String的hashcode也是一一致的)。TreeSet可以对集合中的元素进行自然排序。底层数据结构是二叉树(可以减少比较次数)。判断是否唯一性的依据:1自身具备比较性comparable (重写compareTo方法) 2当元素自身不具备比较性时, 就让集合自身具备比较性 Comparator比较器 (重写compare方法)
3Map集合:保证键的唯一性。如果有相同的键,put方法后覆盖原来的值Map自身无迭代器:遍历元素的两种方式
1 map.keySet() 返回键的key的set集合
2 map.entrySet() 返回映射关系的set集合
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2