A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲁中需 中级黑马   /  2012-10-23 21:48  /  1257 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 鲁中需 于 2012-10-25 21:57 编辑

List、Map、Set三个接口,存取元素时,各有什么特点?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

2 个回复

倒序浏览
Set, List和Map三种体系,
其中Set代表无序、不可重复的集合;
List代表有序、重复的集合;
而Map则代表具有映射关系的集合。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
这个问题就比较广泛了,这三个体系的子类也各有不同的存取方法,详细的话还是参考集合框架的视频吧。简单说下比较大的区别:
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集合

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马