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

时间:2016-10-13 18:03:16

标签: java hashmap hashset

我需要直接用hashmap值检查我的变量值。

我的hashmap值在string中都有两个条目,我需要用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");

接下来我使用了扫描仪类来获取用户的价值。然后我需要知道的是如何将这个用户的值与第一个hashmap即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 ?

}
}

2 个答案:

答案 0 :(得分:0)

你只需要

directory.get(name);

这将返回国家/地区的名称。

为了避免NullPointerException:

String countryName = directory.get(name);
if (countryName != null) {
    // use your countryName variable
}

这比调用另一种不必要的方法(如directory.containsKey(name);

)具有更好的性能

答案 1 :(得分:0)

首先,为防止出现nullPointer异常,您需要确保HashMap包含用户输入密钥:

directory.containsKey(key)

如果成功,则可以返回相应密钥的值:

return directory.get(key);

String key = sc.nextLine();


       if(directory.containsKey(key))
       {
           return directory.get(key);
       }