遍历地图的三种方法
遍历map的三种方法package?cn.tsp2c.liubao ??import?java.util.Collection ??import?java.util.HashMap
遍历map的三种方法
package?cn.tsp2c.liubao; ??import?java.util.Collection; ??import?java.util.HashMap; ??import?java.util.Iterator; ??import?java.util.Map; ??import?java.util.Set; ??import?java.util.TreeMap; ????public?class?TestMap?{ ??????public?static?void?main(String[]?args)?{ ??????????Map<String,?Student>?map?=?new?HashMap<String,?Student>(); ??????????Student?s1?=?new?Student("宋江",?"1001",?38); ??????????Student?s2?=?new?Student("卢俊义",?"1002",?35); ??????????Student?s3?=?new?Student("吴用",?"1003",?34); ?????????? ??????????map.put("1001",?s1); ??????????map.put("1002",?s2); ??????????map.put("1003",?s3); ??????????Map<String,?Student>?subMap?=?new?HashMap<String,?Student>(); ??????????subMap.put("1008",?new?Student("tom",?"1008",?12)); ??????????subMap.put("1009",?new?Student("jerry",?"1009",?10)); ??????????map.putAll(subMap); ??????????work(map); ??????????workByKeySet(map); ??????????workByEntry(map); ??????} ?? [color=red]最常规的一种遍历方法,最常规就是最常用的,虽然不复杂,但很重要,这是我们最熟悉的,就不多说了!![/color] ???public?static?void?work(Map<String,?Student>?map)?{ ??????????Collection<Student>?c?=?map.values(); ??????????Iterator?it?=?c.iterator(); ??????????for?(;?it.hasNext();)?{ ??????????????System.out.println(it.next()); ??????????} ??????} ?? [color=red]利用keyset进行遍历,它的优点在于可以根据你所想要的key值得到你想要的?values,更具灵活性!![/color] ???public?static?void?workByKeySet(Map<String,?Student>?map)?{ ??????????Set<String>?key?=?map.keySet(); ??????????for?(Iterator?it?=?key.iterator();?it.hasNext();)?{ ??????????????String?s?=?(String)?it.next(); ??????????????System.out.println(map.get(s)); ??????????} ??????} ???? [color=red]比较复杂的一种遍历在这里,呵呵~~他很暴力哦,它的灵活性太强了,想得到什么就能得到什么~~[/color] ???public?static?void?workByEntry(Map<String,?Student>?map)?{ ??????????Set<Map.Entry<String,?Student>>?set?=?map.entrySet(); ??????????for?(Iterator<Map.Entry<String,?Student>>?it?=?set.iterator();?it.hasNext();)?{ ??????????????Map.Entry<String,?Student>?entry?=?(Map.Entry<String,?Student>)?it.next(); ??????????????System.out.println(entry.getKey()?+?"--->"?+?entry.getValue()); ??????????} ??????} ??} ??class?Student?{ ??????private?String?name; ??????private?String?id; ??????private?int?age; ??????public?Student(String?name,?String?id,?int?age)?{ ??????????this.name?=?name; ??????????this.id?=?id; ??????????this.age?=?age; ??????} ??????@Override??????public?String?toString()?{ ??????????return?"Student{"?+?"name="?+?name?+?"id="?+?id?+?"age="?+?age?+?'}'; ??????} ??}??