Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA:Hashmap扫描程序输入查找_Java_Hashmap - Fatal编程技术网

JAVA:Hashmap扫描程序输入查找

JAVA:Hashmap扫描程序输入查找,java,hashmap,Java,Hashmap,我正在尝试创建一个类,该类将存储人们的名字和年龄表,并从控制台(例如Bob 19)读取人物和年龄,然后添加到HashMap。在名称、年龄对列表之后,将输入一个没有年龄的名称(例如Bob),用户将终止其输入(ctrl-z)。打印出上次输入的人员的年龄,如果尚未为他们输入年龄,则打印“未知”。例如,如果我输入“mary 12,bob 10,jon 20,bob”,它应该返回10 import java.util.ArrayList; import java.util.HashMap; import

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

    } 
}
import java.util.ArrayList;
导入java.util.HashMap;
导入java.util.Scanner;
公共类哈希映射{
公共静态void main(最终字符串[]args){
HashMap名称=新的HashMap();
ArrayList nameArray=新的ArrayList();
扫描仪输入=新扫描仪(系统输入);
while(在.hasNext()中){
字符串名称=in.next();
nameArray.add(name);
整数年龄=in.nextInt();
姓名。填写(姓名、年龄);
}
整数值;
int x=nameArray.size();
value=names.get(x);
System.out.println(“年龄为:”+值);
} 
}

谢谢你的帮助。我是一名Java初学者,非常欣赏这一切

将名称变量声明移出
并使用最后输入的
名称
获取
年龄。给你:

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

感谢您的回复,但是这个解决方案将只输出我给hashmap的最后一个完整输入。例如,如果我输入(jon 12,mary 13,jon),我希望它查看最后一个输入“jon”,并在hashmap中查找以返回12。