Java 字典和地图
我刚开始我的编程冒险。我真的很喜欢这个主题,但有时我会遇到一些我不完全理解的东西。Java 字典和地图,java,dictionary,Java,Dictionary,我刚开始我的编程冒险。我真的很喜欢这个主题,但有时我会遇到一些我不完全理解的东西。 比如说: //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);
比如说:
//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
Not found
harry=12299933
phonebook
是一个Hashmap。它不能等于字符串“null”
我相信您对如何正确检查null
值感到困惑
当Hashmap中的键不存在时,它返回null
,而不是“null”
。此外,您需要检查值,而不是哈希映射本身
所以
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,因为电话簿
是一个哈希映射。它不能等于字符串“null”
我相信您对如何正确检查null
值感到困惑
当Hashmap中的键不存在时,它返回null
,而不是“null”
。此外,您需要检查值,而不是哈希映射本身
所以
Integer phonenumber = phonebook.get(s);
if(phonenumber == null){
System.out.println("Not found");
}
else {
System.out.println(s + "=" + phonenumber);
}
然后,不相关的问题if(val==true)
就是if(val)
。如果只反转条件,则无需使用,否则如果
,并且您不了解哪部分?提示:null
和“null”
不是一回事phonebook.equals(“null”)==true
看起来很奇怪,输入是什么?问题似乎来自这样一个事实,即您没有处理所有三个输入,而只处理第一个输入。您正在调用映射的等号,为什么?您不理解哪一部分?提示:null
和“null”
不是同一件事电话簿。等号(“null”)==true
看起来很奇怪输入是什么?问题似乎来自这样一个事实,即您没有处理所有三个输入,而只处理第一个输入。您正在调用映射的等号,为什么?我不知道如何调用,但问题是我不知道如何调用,但问题是int phonenumber=phonebook.get(s);并且应该是整数phonennumber=phonebook.get;正确的。您将整数
解包为int
,因此可以与null
正确比较。如果这解决了问题,欢迎您使用刚才所做的。它解决了问题,我非常感谢您的支持!我想我还有很多学习要做。我不知道怎么做,但问题是我不知道怎么做,但问题是int phonenumber=phonebook.get(s);并且应该是整数phonennumber=phonebook.get;正确的。您将整数
解包为int
,因此可以与null
正确比较。如果这解决了问题,欢迎您使用刚才所做的。它解决了问题,我非常感谢您的支持!我想我还有很多东西要学。
Integer phonenumber = phonebook.get(s);
if(phonenumber == null){
System.out.println("Not found");
}
else {
System.out.println(s + "=" + phonenumber);
}