gpt4 book ai didi

java - 字典和 map

转载 作者:行者123 更新时间:2023-12-01 21:16:13 24 4
gpt4 key购买 nike

我刚刚开始我的编程冒险。我真的很喜欢这个主题,但有时我会遇到一些我不完全理解的东西。
例如这样:

//Complete this code or write your own from scratch
import java.util.*;
import java.io.*;

class Solution{
public static void main(String []argh){
Scanner in = new Scanner(System.in);
Map<String, Integer> phonebook = new HashMap<String, Integer>();
int n = in.nextInt();
for(int i = 0; i < n; i++){
String name = in.next();
int phone = in.nextInt();
phonebook.put(name, phone);

}
// Write code here

while(in.hasNext()){
String s = in.next();
int phonenumber = phonebook.get(s);
if(phonebook.equals("null") == true){
System.out.println("Not found");
}
else if(phonebook.equals("null") == false){
System.out.println(s + "=" + phonebook.get(s));

}
}
in.close();
}
}

我应该获得这样的输出,但我得到了这样的结果:

您的输出(标准输出)

sam=99912222

预期输出

sam=99912222
Not found
harry=12299933

最佳答案

电话簿是一个 HashMap 。它不能等于 "null"

的字符串
if(phonebook.equals("null") == true)

我相信您对如何正确检查 null 值感到困惑。

当 Hashmap 中的键不存在时,它返回 null,而不是 "null"。另外,您需要检查值,而不是 Hashmap 本身。

因此

Integer phonenumber = phonebook.get(s);
if(phonenumber == null){
System.out.println("Not found");
}
else {
System.out.println(s + "=" + phonenumber);
}

然后,不相关的问题if (val == true)只是if (val)。如果您只反转条件,则不需要 else if

关于java - 字典和 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40043800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com