不轻言放弃

闽江学院软件学院魔舟工作室

« 申请Google App Engine教程JAVA 产生四位随机数 »

Java 的集合之Map的运用

 有一个Human类,有两个属性是name和age,要求从控制台输入姓名得到年龄:

首先新建一个Human类,代码如下:

package com.mzzo;

public class Human {

private String name;

private int age;

public Human(){}

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;

}

public Human(int age) {

super();

this.age = age;

}

public Human(String name, int age) {

super();

this.name = name;

this.age = age;

}

@Override

public String toString() {

return "经查询"+name+"的年龄是:"+age;

}

}

然后再写个运行类,代码如下:
package com.mzzo;
 
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
 
public class Run {
public static void main(String[] args) {
Human hum = new Human("小明", 22);
Human hum2 = new Human("小李", 23);
Map map = new HashMap();
map.put(hum.getName(), hum);
map.put(hum2.getName(), hum2);
 
System.out.println("请输入要查询的人的姓名:");
Scanner sca = new Scanner(System.in);
String sname = sca.next();
// 从map中拿出value
Collection values = map.values();
for (Iterator iterator = values.iterator(); iterator.hasNext();) {
Human human = (Human) iterator.next();
// System.out.println(human.getName());
}
// 从map中取出key
Set keys = map.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
String k = (String) iterator.next();
// System.out.println(k);
}
 
Set entries = map.entrySet();
for (Iterator iterator = entries.iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
String key = (String) entry.getKey();
Human value = (Human) entry.getValue();
// System.out.println("key=" + key + ",value=" + value.getName());
}
String key=sname;
if (map.containsKey(key)) {
System.out.println(map.get(key));
} else {
System.out.println("对不起,您查找的人不存在!");
}
}
 
}
当然以上的方法不是最优的,只是为了说明Map集合的遍历,其中如果想得到key就用以下方法:
// 从map中取出key
Set keys = map.keySet();
for (Iterator iterator = keys.iterator(); iterator.hasNext();) {
String k = (String) iterator.next();
// System.out.println(k);
}
如果想从Map中得到value可以用以下方法:
// 从map中拿出value
Collection values = map.values();
for (Iterator iterator = values.iterator(); iterator.hasNext();) {
Human human = (Human) iterator.next();
// System.out.println(human.getName());
}
如果既想要Map中的key,又想要Map中的value那就用以下方法遍历:
Set entries = map.entrySet();
for (Iterator iterator = entries.iterator(); iterator.hasNext();) {
Map.Entry entry = (Map.Entry) iterator.next();
String key = (String) entry.getKey();
Human value = (Human) entry.getValue();
// System.out.println("key=" + key + ",value=" + value.getName());
}
 
本文出自:陈风阳的博客(http://www.chenfy.com),转载请注明出处,谢谢。

  • 相关文章:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

日历

最新评论及回复

最近发表

Powered By Z-Blog

Copyright www.chenfy.com All Rights Reserved.
闽ICP备09074391号      QQ:673477673||email:admin@chenfy.com