用java中的hashmap数据检查变量值



我需要直接用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);

)有更好的性能

最新更新