您的位置:首页 > 编程语言 > Java开发

java中的Map判断重复的方法

2012-08-05 14:24 183 查看
本人推测是先用hash值判断后用equals()方法判断,如果有其一不等,则表示两对象不等。以下程序可验证

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Set;

public class MapDemo04 {

public static void main(String[] args) {

Map <Person04,String>map=new HashMap<Person04, String>();

Person04 person=new Person04("abcd");

map.put(new Person04("zhangsan"), "a");

map.put(new Person04("haha"), "b");

map.put(new Person04("sadff"), "c");

map.put(person, "abc");

map.put(person, "cba");

Set <Map.Entry<Person04, String>> s=map.entrySet();

Iterator <Map.Entry<Person04, String>>iterator=s.iterator();

while(iterator.hasNext()){

Map.Entry<Person04, String> me=iterator.next();

System.out.println(me.getKey()+" "+me.getValue());

}

}

}

class Person04{

String name;

Person04(String name){

this.name = name;

}

public String toString(){

return this.name;

}

public int hashCode(){

return 1;

//return this.name.hashCode(); //***********1

}

public boolean equals(Object o){

//return true; //***********2

return false;

}

}

现在把两方法中的注释移下,注释上行或是下行,2*2=4种组合看下执行结果就可以得到推测结果
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: