map的遍歷 以及 集合向數組的轉換

<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) ;
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章