利用Iterator输出Map集合
map接口内部类的子接口方法:
public V getValue(); 获取key
public V getValue();获取value
案例:
package com.yidu.test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class Love { public static void main(String[] args) { Map<Integer, String> map=new HashMap<Integer, String>(); map.put(1, "s1"); map.put(10, "s3"); map.put(3, "s2"); //利用map中的内部接口转为set集合 Set<Entry<Integer, String>> entry = map.entrySet(); //set集合有Iterator接口方法 Iterator<Entry<Integer, String>> itera = entry.iterator(); //利用Iterator接口迭代输出,找出每一个Map.entry接口对象 while(itera.hasNext()){ Entry<Integer, String> me = itera.next(); //输出key和value System.out.println(me.getKey()+"="+me.getValue()); } } } |
自定义map的key类型:需要覆写equals()和hashcode()方法
不建议使用:
package com.yidu.test; import java.util.HashMap; import java.util.Map; class Person{ private String name; public Person(String name) { this.name=name; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Person other = (Person) obj; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; return true; } @Override public String toString() { return this.name; } } public class Love { public static void main(String[] args) { Map<Person,String> map=new HashMap<Person,String>(); map.put( new Person("霉霉"),new String("ok")); System.out.println(map.get(new Person("霉霉"))); } } |