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 }