22、集合之Set之Map

Map——映射

An object that maps keys to values.A map cannot contain duplicate keys;each key can map to at most one value.

Map是将键映射到值的对象,一个映射不能包含重复的键,一个键最多只能映射到一个值。

1、Map是一个接口,它的实现类:HashMap

[java] view plain copy print ?
  1. import java.util.HashMap; 
  2.  
  3. public class HashMap1 
  4.     public static void main(String[] args) 
  5.     { 
  6.         HashMap map = new HashMap(); 
  7.          
  8.         map.put("a", "zhangsan"); 
  9.         map.put("b", "lisi"); 
  10.         map.put("c", "wangwu"); 
  11.         map.put("a", "zhaoliu"); 
  12.          
  13.         System.out.println(map); 
  14.         //打印{a=zhaoliu, c=wangwu, b=lisi} 
  15.          
  16.         String value = (String)map.get("b"); 
  17.         System.out.println(value); //打印lisi 
  18.          
  19.         String value2 = (String)map.get("d"); 
  20.         System.out.println(value2); //打印null 
  21.          
  22.     } 


HashMap存入数据使用put()方法,取出特定键的值使用get()方法。

对于HashMap的keySet()方法返回此映射中所包含的键的 Set 视图,values()方法返回此映射所包含的值的 Collection 视图。

Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。

2、使用HashMap统计命令行参数及个数:如java MapTest4 hello world hello welcome

[java] view plain copy print ?
  1. import java.util.HashMap; 
  2. import java.util.Iterator; 
  3. import java.util.Set; 
  4.  
  5. public class MapTest4 
  6.     public static void main(String[] args) 
  7.     { 
  8.         HashMap map = new HashMap(); 
  9.          
  10.         for(int i =0; i < args.length;i++ ) 
  11.         { 
  12.             if(null==map.get(args[i])) 
  13.             { 
  14.                 map.put(args[i],new Integer(1)); 
  15.             } 
  16.             else 
  17.             {                
  18.                 int num = ((Integer)map.get(args[i])).intValue(); 
  19.                 map.put(args[i], new Integer(num +1)); 
  20.             } 
  21.         } 
  22.          
  23.         Set set = map.keySet(); 
  24.          
  25.         for(Iterator iter = set.iterator();iter.hasNext();) 
  26.         { 
  27.             String key = (String)iter.next(); 
  28.             Integer value = (Integer)map.get(key); 
  29.              
  30.             System.out.println(key + ":" + value); 
  31.         } 
  32.          
  33.     } 

以上是先得到map的一个key集,然后使用迭代器遍历key,然后使用map.get(key)得到值,从而实现map的遍历

2、使用Map的内部类Entry来遍历Map

[java] view plain copy print ?
  1. import java.util.HashMap; 
  2. import java.util.Iterator; 
  3. import java.util.Map; 
  4. import java.util.Set; 
  5.  
  6. public class MapTest5 
  7.     public static void main(String[] args) 
  8.     { 
  9.         HashMap map = new HashMap(); 
  10.          
  11.         map.put("a", "aaaaa"); 
  12.         map.put("b", "bbbbb"); 
  13.         map.put("c", "cccccc"); 
  14.         map.put("d", "ddddd"); 
  15.          
  16.         Set set = map.entrySet(); 
  17.          
  18.         for(Iterator iter = set.iterator();iter.hasNext();) 
  19.         { 
  20.             Map.Entry entry = (Map.Entry)iter.next(); 
  21.              
  22.             String key = (String)entry.getKey(); 
  23.             String value = (String)entry.getValue(); 
  24.              
  25.             System.out.println(key + ":" + value); 
  26.         } 
  27.     } 

3、TreeMap,与TreeSet类似,只不过TreeMap是按照映射的键(key)的顺序来进行排序的。

你可能感兴趣的:(map,java开发工具)