HashSet内部就是使用Hashmap实现的,和Hashmap不同的是它不需要Key和Value两个值往hashset中插入对象其实只不过是内部做了
public boolean add(Object o) {
return map.put(o, PRESENT)==null;
}
而已
public boolean add(Object o) {
return map.put(o, PRESENT)==null;
}
而已
解决方案 »
- 一道可以锻炼你思维的面试题,高手请进?在线等!!!
- 求助啊!!!!一个Java的类型转换问题
- 面向对象
- 求助,关于java打开串口错误的问题
- java.util.Random问题
- 在一个由Jbx向导生成的Application工程面,添加一个JPane,再往这个JPane里再添加一个JButton,对它调用JButton.setLocation,在程序运行
- 如何在tomcat环境,在自己建的目录下,调用servlet
- 我爱Robocode!是否有志同道合的,大家切磋切磋!
- JAVA运行错误?帮帮小弟!
- java初级狗!求问个简单的问题~
- Why my applet not inited?
- 讨论一下,java内部类的区别:静态成员类,成员类,局部类,和匿名类,他们分别最适合在是什么场合使用
HashSet为散列集,它把查找时间看的很重要,其中所有元素必须要有hashCode().
2.个人认为,它们好象都是用的线性链表来解决散列码冲突的.即一个hashCode并不直接指向某个value,而是指向一串values.这些values以线性方式通过equals()方式进行查找.
2.对于冲突,HashMap是用链表来实现的,就是hashCode相同的话就肯定在一个链表上,不过
在同一个链表上的不一定hashCode相同!
可以参考:
http://blog.csdn.net/treeroot/archive/2004/09/20/111104.aspx
http://blog.csdn.net/treeroot/archive/2004/09/21/112246.aspx
http://blog.csdn.net/treeroot/archive/2004/09/21/112283.aspx
希望对你有一点帮助