黑马程序员技术交流社区

标题: 关于单列双列集合好纠结,睡不着了 [打印本页]

作者: huhemingtiancai    时间: 2016-4-6 00:34
标题: 关于单列双列集合好纠结,睡不着了
今天学了双列集合,听说和单列集合是一个算法支持的,而且单列的set好像和双列集合也有些关系,所以我很好奇1.单列list集合和双列集合有关联嘛?例如:list集合底层是不是也是双列集合支持的?对照set集合是隐藏了双列集合的值,只显示键,值列全部是自定义object对象,所以不可以存放重复元素,那么list集合是不是隐藏了键,只显示值?他的键列是new  object对象还是直接把判断键是否相同的方法改掉了?
2.对于set
集合来说,他相当于是隐藏了双列集合的值,只显示键,那么存入第二个元素时就会产生无法存入的效果,那么对于双列集合来说,当他的键一样,值不一样的时候,值是可以覆盖原值的,那么键呢?应该也是存不进去的吧?
求大神告知,谢谢。{:3_62:}
作者: huhemingtiancai    时间: 2016-4-6 00:49
怎么没有人?求上天赐一个大神
作者: z332406259    时间: 2016-4-6 07:09
同求答案.新人膜拜.
作者: huhemingtiancai    时间: 2016-4-6 21:16
来人啊?没人吗?
作者: zx7750462    时间: 2016-4-6 21:43
首先,List和Map之间是没有关系的.因为list不能去重复,但是存取顺序一样是依靠数据结构决定的.
其次,Set的底层确实是用Map实现的,Set确实隐藏了值,只显示键.HashSet和HashMap能去重复是因为重写了equals和hashcode方法,TreeSet和TreeMap能去重复并且排序是因为实现了comparable接口重写了copareTo()方法或者传入了比较器comparator
然后楼主对Map的理解有问题,Map的去重复和排序都只对键有效,对值无效.当键一样值会覆盖.
作者: 马儿不吃草    时间: 2016-4-6 22:08
楼上表达的很明白了




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