Map的遍歷及map的value值遍歷及value轉化爲其它類型

先開始map的遍歷:數組

Map<String, String> map = new HashMap<String, String>();
  map.put("1", "2");
  map.put("2", "4");
  map.put("3", "1");
  map.put("4", "3");
spa

1、把key值放進set排序:(使用map.keySet();)--這個效率低(重複的獲取value值致使)排序

Set<String> keySet = map.keySet();
for(String str:keySet){
   System.out.println(str+"--"+map.get(str));
}
get

或者使用iterator遍歷string

//while(keySet.iterator().hasNext()){//--注:千萬不要懶省事,直接放在裏面,會無限循環
   //String next = keySet.iterator().next();
   //System.out.println(next+"--"+map.get(next));
//}
it

Iterator<String> iterator = keySet.iterator();
while(iterator.hasNext()){
   String next = iterator.next();
   System.out.println(next+"--"+map.get(next));
}
io

固然,還可使用普通的for循環--這個此處忽略for循環

2、把map放到set裏面遍歷(使用map.entrySet())--這個效率高(直接把key、value遍歷)效率

Set<Entry<String, String>> entrySet = map.entrySet();
for(Entry<String, String> ds:entrySet){
   System.out.println(ds.getKey()+"--"+ds.getValue());
}
泛型

或者使用iterator遍歷

//while(entrySet.iterator().hasNext()){//--注:千萬不要懶省事,直接放在裏面,會無限循環
   //Entry<String, String> next = entrySet.iterator().next();
   //System.out.println(next.getKey()+"--"+next.getValue());
//}

Iterator<Entry<String, String>> iterator = entrySet.iterator();
while(iterator.hasNext()){
   Entry<String, String> next = iterator.next();
   System.out.println(next.getKey()+"--"+next.getValue());
}

3、按照value值集合遍歷(缺點是僅僅能夠遍歷value值---不能遍歷key值,有時有這需求)

Collection<String> values = map.values();
for(String s:map.values()){
   System.out.println(s
}

map的values--Collection<String> v = map.values(); 轉化爲數組或者List集合

Collection<String> values = map.values();

轉化爲List<String>:

List<String> l=new ArrayList<String>(map.values());
for(String s:l){
   System.out.print(s);
}

轉化爲數組

1.直接爲Object[]數組

Object[] array = map.values().toArray();
for(Object s:array){
   System.out.print(s);
}

2.轉化爲value泛型的數組(此處爲String[])

String[] strings = map.values().toArray(new String[map.size()]);for(String s:strings){   System.out.print(s);}

相關文章
相關標籤/搜索