<pre name="code" class="java">
package com.example.main;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class Main {
private static Map<String, String> map = new HashMap<String, String>();
/**
* @param args
*/
public static void main(String[] args) {
map.put("孫zhen", "大三");
map.put("小樑", "大二");
map.put("王亮", "大一");
map.put("張舒", "大四");
for (String grade : map.values()) { // 捨棄key 只要value值
System.out.println("value" + grade);
}
System.out.println("********************");
Set<String> set = map.keySet(); // key的set ,當然可以根據key來從map中取value
for(String key : set){
System.out.println("key是" + key);
}
System.out.println("********************");
Set<Entry<String, String>> set2=map.entrySet(); // entry的set entry 中包括key和value,注意形式
for (Entry<String, String> entry: set2) {
System.out.println(entry);
System.out.println(entry.getKey() + "," + entry.getValue());
}
System.out.println(map.values().toArray(new String[set.size()])); // 調用toArray 並指明一個object具體的
System.out.println(set.toArray(new String[set.size()]));
}
}
下面是運行結果:
value大三
value大一
value大二
value大四
********************
key是孫zhen
key是王亮
key是小樑
key是張舒
********************
孫zhen=大三
孫zhen,大三
王亮=大一
王亮,大一
小樑=大二
小樑,大二
張舒=大四
張舒,大四
[Ljava.lang.String;@47ca3f82
[Ljava.lang.String;@2f0f94a0
通過這個例子,你應該明白 map的遍歷方式 、 entry的形式 、集合向數組的轉換。
總的來說:比較好的性能是這些,並不是那種 先或得Iterator 然後 next()類的方法調用來遍歷map。
方法一:忽略了key 直接獲取其中的values
如
for( String values : map.values() ) {
}
此遍歷是直接調用values()方法,返回一個集合collection。這個集合a collection of the values contained in this map.
The collection supports remove, removeAll, retainAll and clear operations, and it does not support add or addAll operations.
由於這個方法不是synchironization 執行的,所以如果是多個調用同時發生,返回的是多個collection。
方法二:EntrySet
for ( Entry<String , String> entry : map.entrySet() ) {
key = entry.getKey() ;
value = entry.getaValue() ;
}
方法三:KeySet
for( String key : map.keySet() ) {
value = map.get(key) ;
}