1、Map和Map.Entery區別
筆者認為很多人誤解這兩個類,或者說不太會靈活應用,下面我來簡單說一下我的理解(僅供參考)。
→Map : 無可厚非,學過java的不管是小鳥還是老牛都已經敲得不想再敲了,是屬於一個鍵值對的集合類,屬於線程不安全的,關於Map線程安全的可以另外實現,以后會講到。
For Example: Map<String,Object> map = new HashMap<String,Object>();
map.put("1",1);//分區1
map.put("2",2);//分區1
key和value只是我們自己定義的對象,並且key是唯一不重復的,value可以重復,僅此而已。
→Map.Entry是一個Map的衍生類,功能更強大,可以通過 map.enteySet()獲取,是一個實例化或后對象集,
For Example: Map.Entery<String,Object> map = map.entrySet();
map.put("1",1);//分區1
map.put("2",2);//分區2
是以一個Set容器承載的,可以迭代遍歷,並且提供了getKey()和getValue(),setValue()等常用的方法;
★ example 1
public class TestMap {
public static void main(String[] args) {
Map<String, Object> map = new HashMap<String,Object>();
map.put("1", "One");
map.put("2", "Two");
map.put("3", "Three");
map.put("4", "Four");
map.put("5", "Five");
System.out.println(TestMap.mapConvertStringOne(map));
}
public static String mapConvertStringOne(Map<String,Object> mapEmp){
StringBuilder returnString = new StringBuilder();
Set<Map.Entry<String, Object>> set = mapEmp.entrySet();
Map.Entry<String, Object> entry = null;
returnString.append("{");
for(Iterator<Map.Entry<String, Object>> iterator2 = set.iterator();iterator2.hasNext();){
entry = iterator2.next();
returnString.append(entry.getKey());
returnString.append(":");
returnString.append(entry.getValue());
if(iterator2.hasNext()){
returnString.append(",");
}
}
returnString.append("}");
return returnString.toString();
}
}
運行結果: {3:Three,2:Two,1:One,5:Five,4:Four}// 可以看出無序排列
★ example 2
@SuppressWarnings("rawtypes")
private static String mapConvertStringTwo(Map<String,Object> mapEmp){
StringBuilder returnString = new StringBuilder();
Set<String> keySet = mapEmp.keySet();
returnString.append("{");
for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
returnString.append(key);
returnString.append(":");
returnString.append(mapEmp.get(key));
if(iterator.hasNext()){
returnString.append(",");
}
}
returnString.append("}");
return returnString.toString();
}
運行結果 : {3:Three,2:Two,1:One,5:Five,4:Four}// 可以看出無序排列
本人認為如果沒有什么特殊處理 第二個例子更實用一些,簡單易懂都是大家平時用的,另外關於性能方面HashMap性能相對HashTable更好,在開發上基本都是實用HashMap.以上介紹的小例子希望可以幫助大家。
