我需要直接用hashmap值检查我的变量值
我的hashmap值在字符串中有两个条目,我需要检查我的变量值与hashmap的第一个条目。
上面是小版本的代码。
HashMap<String , String> directory = new HashMap<String , String>();
directory.put("AFG","Afghanistan");
directory.put("GBR","United Kingdom of Great Britain and Northern Ireland");
directory.put("IDN","Indonesia");
directory.put("IND","India");
接下来,我使用扫描器类来获取用户的值。然后我需要知道的是如何比较这个用户的值与哈希表的第一个条目,即AFG, GBR等
整个程序的示例代码为:
import java.util.*;
public class hashmapdemo {
public static void main(String args[]) {
HashMap<String , String> directory = new HashMap<String , String>();
directory.put("AFG","Afghanistan");
directory.put("GBR","United Kingdom of Great Britain and Northern Ireland");
directory.put("IDN","Indonesia");
directory.put("IND","India");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println(name);
// comparing logic ?
}
}
首先,为了防止nullPointer异常,您需要确保您的HashMap
包含用户输入键:
directory.containsKey(key)
如果成功,则可以返回对应键的值:
return directory.get(key);
String key = sc.nextLine();
if(directory.containsKey(key))
{
return directory.get(key);
}
你只需要
directory.get(name);
这将返回国家的名称。
为了避免NullPointerException:
String countryName = directory.get(name);
if (countryName != null) {
// use your countryName variable
}
这比调用另一个不必要的方法(如directory.containsKey(name);