我试图创建一个classthat,它将存储一个人的名字和年龄的表,并从控制台读取人和年龄(例如Bob 19)并添加到HashMap。在名称,年龄对列表之后,将输入没有年龄的名称(例如Bob),并且用户将终止他们的输入(ctrl-z)。打印出最后输入的人的年龄,如果没有为他们输入年龄,则打印“未知”。所以例如如果我输入“mary 12,bob 10,jon 20,bob”它应该返回10.
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;
public class Hashmap {
public static void main(final String[] args) {
HashMap<String, Integer> names = new HashMap<String, Integer>();
ArrayList<String> nameArray = new ArrayList<String>();
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String name = in.next();
nameArray.add(name);
Integer age = in.nextInt();
names.put(name, age);
}
Integer value;
int x = nameArray.size();
value = names.get(x);
System.out.println("the age is:" + value);
}
}
感谢您的帮助。我是Java初学者并且非常感激
答案 0 :(得分:0)
将名称变量声明移出while
,并使用输入的最后age
获取name
。你走了:
String name
while (in.hasNext()) {
name = in.next();
nameArray.add(name);
Integer age = in.nextInt();
names.put(name, age);
}
Integer value;
value = names.get(name);
System.out.println("the age is:" + value);