【问题标题】:JAVA: Hashmap scanner input lookupJAVA:哈希图扫描器输入查找
【发布时间】:2014-09-03 11:05:33
【问题描述】:

我正在尝试创建一个类,该类将存储人们的名字和年龄表,并从控制台(例如 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 初学者,非常感谢

【问题讨论】:

    标签: java hashmap


    【解决方案1】:

    将名称变量声明移出while,并使用最后输入的name 获取age。给你:

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

    【讨论】:

    • 感谢您的响应,但此解决方案只会输出我给哈希图的最后一个完整输入。例如,如果我输入 (jon 12, mary 13, jon) 我希望它查看最后一个输入“jon”并在 hashmap 中查找以返回 12。
    猜你喜欢
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-04
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多