Map遍历(map.entry)结合jdk1.5for循环

先把所有的代码都拷上来

MapEntryBase.java 为了生成数据,没有用高级方法,一个for循环put进hashmap 写的非常挫,呵呵,完成功能就好

package mapEntry;
import java.util.HashMap;
import java.util.Map;
//基类初始化数据
public class MapEntryBase {

	
	public static HashMap init(){
		String[] keys={"key1","key2"};
		String[] values={"hello","world"};
		HashMap<String,String> mapTest=new HashMap<String,String>();
		for(int i=0;i<keys.length;i++){
			mapTest.put(keys[i], values[i]);
		}
		return mapTest;
	}

MapEntry_normal.java   这是网上非常流行的map.entry的while遍历方法

package mapEntry;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
//流行的map.entry方式

public class MapEntry_normal extends MapEntryBase{
	static Map mapTest;
	public static void main(String argus[]){
		mapTest=init();
		Set entries=mapTest.entrySet();
		Iterator<Map.Entry<String,String>> iEntries=entries.iterator();
		while(iEntries.hasNext()){
			Map.Entry<String, String> entry=iEntries.next();
			System.out.println("key: "+ entry.getKey()+"value: "+entry.getValue());
		}
		
	}
}
 
}


MapEntry_Origin.java 这是最初没有用map.entry时的处理方法,觉得好像就是一个方法的区别,和entry的复杂程度差不多
。。。。。。

package mapEntry;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//最原始的方式
public class MapEntry_Origin extends MapEntryBase{
	static Map mapTest;
	public static void main(String argus[]){
		mapTest=init();
		Set keys=mapTest.keySet();
		Iterator iKeys=keys.iterator();
		
		while(iKeys.hasNext()){
			
			Object key=iKeys.next();
			System.out.println("key: "+ key+"value: "+ mapTest.get(key));
			
		}
		
		
	}
	
	
	
}

MapEntry_Update.java 结合for循环的新特性,感觉代码少了些,感觉还不错
 package mapEntry;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
//3种结合for 循环的方式
public class MapEntry_Update extends MapEntryBase{
	static HashMap mapTest;
	public static void main(String argus[]){
		mapTest=init();
		
		//solution 1
 //		for(Iterator i=mapTest.entrySet().iterator();i.hasNext();){
//			Map.Entry entry=(Map.Entry)i.next();
//			System.out.println("key: "+ entry.getKey()+"value: "+entry.getValue());
//		}
		//solution 2
//		for(Object o:mapTest.entrySet()){
//			Map.Entry entry=(Map.Entry)o;
//			System.out.println("key: "+ entry.getKey()+"value: "+entry.getValue());
//		}
		//solution 3
//		for(Map.Entry entry:(Set<Map.Entry>)mapTest.entrySet()){
//			System.out.println("key: "+ entry.getKey()+"value: "+entry.getValue());
//		}
		
		
	}
}
 

方法1 是新特性的for循环没啥看点, 方法2 和3 感觉比较不错,就是写起来比较痛苦,呵呵,欢迎拍砖

你可能感兴趣的:(java)