欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

【Java类集】_IdentityHashMap类笔记,

来源: javaer 分享于  点击 38030 次 点评:51

【Java类集】_IdentityHashMap类笔记,


【Java类集】_IdentityHashMap类笔记

分类: Java
【Java类集】_IdentityHashMap类笔记

在正常的Map操作,key本身是不能够重复的。

[java] view plaincopyprint?
  1. import java.util.Map;  
  2. import java.util.HashMap;  
  3. import java.util.Iterator;  
  4. import java.util.Set;  
  5. class Person{  
  6.     private String name;  
  7.     private int age;  
  8.     public Person(String name,int age){  
  9.         this.name = name;  
  10.         this.age = age;      
  11.     }  
  12.     public String toString(){  
  13.         return "姓名:"+this.name+";年龄:"+this.age;      
  14.     }  
  15.     public boolean equals(Object obj){  
  16.         if(this==obj){  
  17.             return true;  
  18.         }  
  19.         if(!(obj instanceof Person)){  
  20.             return false;  
  21.         }  
  22.         Person per = (Person) obj;  
  23.         if(this.name.equals(per.name)&&this.age==per.age){  
  24.             return true;  
  25.         }else{  
  26.             return false;  
  27.         }  
  28.     }  
  29.     public int hashCode(){  
  30.         return this.name.hashCode()*this.age;  
  31.     }  
  32. }  
  33. public class HashMapDemo08{  
  34.     public static void main(String args[]){  
  35.         Map<Person,String> map = null;  
  36.         map = new HashMap<Person,String>();  
  37.         map.put(new Person("张三",30),"zhangsan_1");//增加内容  
  38.         map.put(new Person("张三",30),"zhangsan_2");//增加内容  
  39.         map.put(new Person("李四",31),"lisi");//增加内容  
  40.         Set<Map.Entry<Person,String>> allSet = null;  
  41.         allSet = map.entrySet();  
  42.         Iterator<Map.Entry<Person,String>> iter=null;  
  43.         iter = allSet.iterator();  
  44.         while(iter.hasNext()){  
  45.             Map.Entry<Person,String> me = iter.next();  
  46.             System.out.println(me.getKey()+"-->"+me.getValue());          
  47.         }  
  48.     }  
  49. }  



输出:
姓名:李四;年龄:31-->lisi
姓名:张三;年龄:30-->zhangsan_2

使用HashMap操作的时候,key 内容是不能重复的,如果现在希望key内容可以重复(指的重复是指两个对象的地址不一样key1==key2)则要使用IdentityHashMap类。

[java] view plaincopyprint?
  1. import java.util.Map;  
  2. import java.util.IdentityHashMap;  
  3. import java.util.Iterator;  
  4. import java.util.Set;  
  5. class Person{  
  6.     private String name;  
  7.     private int age;  
  8.     public Person(String name,int age){  
  9.         this.name = name;  
  10.         this.age = age;      
  11.     }  
  12.     public String toString(){  
  13.         return "姓名:"+this.name+";年龄:"+this.age;      
  14.     }  
  15.     public boolean equals(Object obj){  
  16.         if(this==obj){  
  17.             return true;  
  18.         }  
  19.         if(!(obj instanceof Person)){  
  20.             return false;  
  21.         }  
  22.         Person per = (Person) obj;  
  23.         if(this.name.equals(per.name)&&this.age==per.age){  
  24.             return true;  
  25.         }else{  
  26.             return false;  
  27.         }  
  28.     }  
  29.     public int hashCode(){  
  30.         return this.name.hashCode()*this.age;  
  31.     }  
  32. }  
  33. public class IdentityHashMapDemo01{  
  34.     public static void main(String args[]){  
  35.         Map<Person,String> map = null;  
  36.         map = new IdentityHashMap<Person,String>();  
  37.         map.put(new Person("张三",30),"zhangsan_1");//增加内容  
  38.         map.put(new Person("张三",30),"zhangsan_2");//增加内容  
  39.         map.put(new Person("李四",31),"lisi");//增加内容  
  40.         Set<Map.Entry<Person,String>> allSet = null;  
  41.         allSet = map.entrySet();  
  42.         Iterator<Map.Entry<Person,String>> iter=null;  
  43.         iter = allSet.iterator();  
  44.         while(iter.hasNext()){  
  45.             Map.Entry<Person,String> me = iter.next();  
  46.             System.out.println(me.getKey()+"-->"+me.getValue());          
  47.         }  
  48.     }  
  49. }  

相关文章

    暂无相关文章
相关栏目:

用户点评