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;
}
而已
解决方案 »
- 这个程序怎么画不出来图 但是可以运行 高手指点 是一个简单的画图程序
- 是我电脑的毛病,还是我程序的毛病?
- 一个未完成的俄罗斯方块程序!运行不了!急!!
- 简单问题,谁帮我解决?
- 谁能给我一个使用Tomcat 5.0的小例子?
- 怎么知道一个变量已经别实例化了????
- 如何区分文件是二进制文件还是文本文件?
- 初学java,做的头昏脑涨,麻烦高手指导一下。
- Vector 和 ArrayList到底有什么区别?
- 如何在java应用程序中显示网页!在applet中我会显示,在应用程序还望指教!
- 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
希望对你有一点帮助