Wednesday, April 22, 2009

HashSet

HashSet的排序规则是利用哈希法(Hash),所以加入HashSet容器的对象还必须从新定义hashCode()方法
HashSet根据哈希码来确定对象在容器中存储的位置
在比较两个加入HashSet容器中的对象是否相同时,会先比较hashCode()方法返回的值是否相同,如果相同再使用equals()方法比较。
事实上 在定义类时最好重新定义equals()与hashCode()方法
一个HashSet的简单例子:
package 对象容器;
import java.util.*;
public class HashSetDemo {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Set set=new HashSet();
set.add("caterpillar");
set.add("momor");
set.add("bush");
set.add("momor");

Iterator iterator=set.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next()+" ");
}
System.out.println();

set.remove("bush");
for(String name:set){
System.out.print(name+" ");
}
System.out.println();

}

}
运行结果:
momor bush caterpillar
momor caterpillar

注意:
1:对象都是唯一的,即使重复加入也只有一个
2:迭代容器中所有值时,其顺序与加入容器的顺序是不一样的,迭代时的顺序是HashSet排序后的顺序

No comments:

Post a Comment