首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Map.Entry 跟 Map.entrySet() ,用类遍历hashMap,hashTable

2012-10-29 
Map.Entry 和 Map.entrySet() ,用类遍历hashMap,hashTable偶然今天发现HashMap?用到下面的格式?,直接循环

Map.Entry 和 Map.entrySet() ,用类遍历hashMap,hashTable

偶然今天发现HashMap?用到下面的格式?,直接循环遍历整个hashMap??hashTable

返回的?set?中的每个元素都是一个?Map.Entry?类型。

private?Hashtable<String,?String>?emails?=?new?Hashtable<String,?String>();

//??????方法一:?用entrySet()
//??Iterator?it?=?emails.entrySet().iterator();
//??while(it.hasNext()){
//???Map.Entry?m=(Map.Entry)it.next();
//???logger.info("email-"?+?m.getKey()?+?":"?+?m.getValue());
//??}
??
??//?方法二:直接再循环中
??for?(Map.Entry<String,?String>?m?:?emails.entrySet())?{
???
???logger.info("email-"?+?m.getKey()?+?":"?+?m.getValue());
??}
??
??//?方法三:用keySet()
??Iterator?it?=?emails.keySet().iterator();
??while?(it.hasNext()){
???String?key;
???key=(String)it.next();
???logger.info("email-"?+?key?+?":"?+?emails.get(key));
??}

?//?方法五:还是用keySEt()????????(04.29添加)

for(Object?m:?emails.keySet()){
???logger.info("email-"?+?m+?":"?+?emails.get(m));
??}

另外?我们可以先把hashMap?转为集合Collection,再迭代输出,不过得到的对象

??Map???aa???=???new???HashMap();???
??aa.put("tmp1",???new???Object());?????//追加?????替换用同样的函数.???
??aa.remove("temp1");???????????????????????//删除???
??for???(Iterator???i???=???aa.values().iterator();???i.hasNext();???)???{???
??????????Object???temp???=???i.next();???
??}?????????//遍历???

?

来个完整的,包含TreeSet的元素内部排序的

public?static?void?main(String[]?args)?{
??ArrayList<String>?list?=?new?ArrayList<String>();
??HashMap<Object,Object>?hash?=?new?HashMap<Object,Object>();
??TreeMap<Object,Object>?treeMap?=?new?TreeMap<Object,Object>();
??list.add("a");
??list.add("b");
??list.add("c");
??
??hash.put(3,?3);
??hash.put(4,?4);
??hash.put(5,?5);
??hash.put(6,?6);
??hash.put(1,?1);
??hash.put(2,?2);
??
??treeMap.put(1,?1);
??treeMap.put(2,?2);
??treeMap.put(3,?3);
??treeMap.put(4,?4);
??treeMap.put(5,?5);
??treeMap.put(6,?6);
??
??//list遍历
??for(String?m:?list){
???System.out.println(m);
??}
??//?hashmap?entrySet()?遍历
??for(Map.Entry<Object,Object>?m:?hash.entrySet()){
???System.out.println(m.getKey()+"---"+m.getValue());
??}
??//hashmap?keySet()?遍历
??for(Object?m:?hash.keySet()){
???System.out.println(m+"---"+hash.get(m));
??}
??//?treemap?keySet()遍历
??for(Object?m:?treeMap.keySet()){
???System.out.println(m+"---"+treeMap.get(m));
??}
?}

热点排行