From Syliu
Map集合取出元素的原理:
先将map集合转成Set集合。然后对set集合进行迭代。
keySet:将所有的键取出存放在Set集合中,对Set集合进行迭代,并通过map集合的get方法,获取键所对应的value。
entrySet:将键值的关系取出存入到了Set集合中。键值关系有自己的类型就是:Map.Entry。
Map.Entry就是Map接口中定义了一个静态接口Entry
可以通过Map.Entry对象的getKey(),getValue().values()
1 import java.util.*; 2 3 public class HashMapDemo1 { 4 5 /** 6 * @param args 7 * 存入键值 ,要保证键的唯一性。 8 */ 9 public static void main(String[] args) { 10 // TODO Auto-generated method stub 11 HashMap<String, String> hm=new HashMap<String,String>(); 12 hm.put("zs", "beijing"); 13 hm.put("ls", "nanjing"); 14 hm.put("was", "beijing"); 15 hm.put("zdds", "shenzhen"); 16 hm.put("ls", "tieling"); // 键相同时,存入后存的值 17 //取出元素第一种方式:keySet() 18 //将所有的键取出存在SET中,在通过键取出键所对应的值! 19 Set<String> keSet=hm.keySet(); 20 for (Iterator<String> iterator = keSet.iterator(); iterator.hasNext();) { 21 String string = iterator.next(); 22 //System.out.println(string+" value: "+hm.get(string)); 23 24 } 25 //第二种方式 entrySet() 26 Set<Map.Entry<String, String>> set2=hm.entrySet(); 27 for (Iterator <Map.Entry<String, String>> iterator = set2.iterator(); iterator.hasNext();) { 28 Map.Entry<String, String> entry = (Map.Entry<String, String>) iterator 29 .next(); 30 String key=entry.getKey(); 31 String valueString=entry.getValue(); 32 System.out.println(key+"...."+valueString); 33 34 } 35 //第三种取出方式 values() 36 Collection<String> co=hm.values(); 37 for (Iterator<String> iterator = co.iterator(); iterator.hasNext();) { 38 String string = (String) iterator.next(); 39 System.out.print(string); 40 } 41 } 42 43 }