由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 问个Java的HashSet.contains的问题
相关主题
一道面试题和解法(求指点).一个实际碰到的问题
leetcode的3sum的运行时间问题问个java小白问题
LeetCode 的 4 sum 问题 如何用hash table做呢?求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)
4sum o(n^2)超时弱弱的问问intersection, union of two arrays or two sets ?
Linked电面分享,挺好的题 应该已挂Second round phone interview with eBay
permutationII ,如果不用hashset,用迭代的方法,如何防止重复一道电面题,分享下, 这个题应该用哪几个data structure?
F电面leetcode 129
java的基本问题word ladder ii 谁给个大oj不超时的?
相关话题的讨论汇总
话题: arraylist话题: list话题: integer话题: hashset话题: set
进入JobHunting版参与讨论
1 (共1页)
g****9
发帖数: 163
1
如果我定义了一个list和一个set。 set里放的是list,如果我set.add(list)之后加一
个list.clear()的话 那set.contains(list) return的false。list.clear()不是不改
变reference的吗?那不是set里面还保存的原来的list,这样的话不是应该return
true? 但是
结果是return false。 求指点。
代码见下面
ArrayList list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
HashSet> set = new HashSet>();
set.add(list);
list.clear();// set.contains(list) return false/
s****y
发帖数: 503
2
hashset是基于hashmap的key来实现的
list.clear后list的hashcode变化了,所以就找不到了
其实你只要改变list的内容,他的hashcode就会改变
g*****g
发帖数: 34805
3
这个取决于ArrayList的hashCode实现,如果实现是依赖Object.hashCode就会返回true.
但ArrayList的hashCode是基于elements的Hashcode.

【在 g****9 的大作中提到】
: 如果我定义了一个list和一个set。 set里放的是list,如果我set.add(list)之后加一
: 个list.clear()的话 那set.contains(list) return的false。list.clear()不是不改
: 变reference的吗?那不是set里面还保存的原来的list,这样的话不是应该return
: true? 但是
: 结果是return false。 求指点。
: 代码见下面
: ArrayList list = new ArrayList();
: list.add(1);
: list.add(2);
: list.add(3);

1 (共1页)
进入JobHunting版参与讨论
相关主题
word ladder ii 谁给个大oj不超时的?Linked电面分享,挺好的题 应该已挂
杯具!越改越差permutationII ,如果不用hashset,用迭代的方法,如何防止重复
问一个Anagram的参考程序F电面
Google电面被拒,郁闷中java的基本问题
一道面试题和解法(求指点).一个实际碰到的问题
leetcode的3sum的运行时间问题问个java小白问题
LeetCode 的 4 sum 问题 如何用hash table做呢?求点评:电话面试(今天第二天没有消息回复,感觉可能挂了)
4sum o(n^2)超时弱弱的问问intersection, union of two arrays or two sets ?
相关话题的讨论汇总
话题: arraylist话题: list话题: integer话题: hashset话题: set