标签: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