标签:map
Map中是没有迭代器的,那么Map中的元素是如何取出的呢?
有两种方法:
一种是通过Set <k> keySet ()
一种是通过 Set <Map.Entry<k,v>> entrySet ()
keySet:: 将map中所有的键存入到Set集合中。在通过map的getKey ()方法即可获得 value的值
entrySet: 返回此映射中包含的映射关系的Set视图。既包含键也包含值。 这个映射关系的数据类型就是Map.Entry.
public class MapDemo { public static void main(String[] args) { // TODO Auto-generated method stub keySet_method(); entrySet_method(); } public static void entrySet_method() { Map<String, String> map = new HashMap<String, String>(); map.put("01", "a5"); map.put("02", "a1"); map.put("03", "a2"); map.put("04", "a3"); map.put("05", "a4"); Set<Map.Entry<String, String>> entryset = map.entrySet(); Iterator<Map.Entry<String, String>> it = entryset.iterator(); while (it.hasNext()) { Map.Entry<String, String> me = it.next(); String key = me.getKey(); String value = me.getValue(); System.out.println("key : " + key + " Value : " + value); } } public static void keySet_method() { Map<String, String> map = new HashMap<String, String>(); map.put("01", "a5"); map.put("02", "a1"); map.put("03", "a2"); map.put("04", "a3"); map.put("05", "a4"); Set<String> keyset = map.keySet(); Iterator<String> it = keyset.iterator(); while (it.hasNext()) { // 获取键 String key = it.next(); String value = map.get(key); System.out.println("key : " + key + " Value : " + value); } } }
存入自定义元素,通过两种方式来取出:
class Stu implements Comparable<Stu> { private String name; private int age; public Stu(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public boolean equals(Object obj) { // TODO Auto-generated method stub if (!(obj instanceof Stu)) throw new ClassCastException("不是本类的对象"); Stu s = (Stu) obj; return this.name.equals(s.name) && this.age == s.age; } @Override public int hashCode() { // TODO Auto-generated method stub return name.hashCode() + age * 27; } public int compareTo(Stu o) { // TODO Auto-generated method stub Integer num = new Integer(this.age).compareTo(new Integer(o.age)); if (num == 0) return this.name.compareTo(o.name); return num; } } public class MapDemo2 { public static void main(String[] args) { // TODO Auto-generated method stub Map<Stu, String> map = new HashMap<Stu, String>(); map.put(new Stu("01", 10), "beijing"); map.put(new Stu("02", 9), "shanghai"); map.put(new Stu("03", 8), "huangzhou"); map.put(new Stu("04", 15), "tianjin"); Set<Stu> keySet = map.keySet(); Iterator<Stu> it = keySet.iterator(); while (it.hasNext()) { Stu key = it.next(); String value = map.get(key); System.out.println("key : " + key.getName() + "---" + key.getAge() + " Value : " + value); } /*************************************************/ Set<Map.Entry<Stu, String>> entrySet = map.entrySet(); Iterator<Map.Entry<Stu, String>> iterator = entrySet.iterator(); while (iterator.hasNext()) { Map.Entry<Stu, String> me = iterator.next(); Stu key = me.getKey(); String value = me.getValue(); System.out.println("key : " + key.getName() + "---" + key.getAge() + " Value : " + value); } } }
标签:map
原文地址:http://blog.csdn.net/u013476556/article/details/45439921