JAVA:Hashmap扫描程序输入查找

时间:2014-09-03 11:05:33

标签: java hashmap

我试图创建一个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初学者并且非常感激

1 个答案:

答案 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);