2016-10-13 3 views
-1

Мне нужно проверить значение переменной непосредственно с помощью значений hashmap.Проверка значения переменной с данными hashmap в java

Мои значения 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"); 

Следующего я использовал класс сканера, чтобы получить value.Then пользователя, что мне нужно знать, как сравнить значение этого пользователя с первой записью 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 ? 

} 
} 
+0

, что будет пользователя? ключ или значение? – Saravana

+1

нет порядка в hashmap, если заказ важен, вы должны изучить другую структуру данных. –

+0

Пользовательский ввод будет ключевой частью IND и т. Д., И мне нужно сравнить его с значением hashmap @Saravana –

ответ

0

Во-первых, чтобы предотвратить исключение NullPointer вы хотите, чтобы убедиться, что ваш HashMap содержит входные данные пользователей ключ с:

directory.containsKey(key)

, если это успешно, то вы можете вернуть это значение соответствующего ключа: вход

return directory.get(key);

String key = sc.nextLine(); 


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

Вам просто нужно

directory.get(name); 

Это вернет т он назвал страну.

Для того, чтобы избежать NullPointerException:

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

Это имеет лучшую производительность, чем вызов другой ненужный метод, как directory.containsKey(name);

+1

Почему ты делаешь вниз? – hofmeister

+0

Я бы предположил, потому что вам нужно проверить, содержит ли карта ключ, прежде чем пытаться напрямую получить к нему доступ. – Jacob

+0

Вызов directory.get (name) вызовет исключение NullPointerException, если ключ не существует, программа выдает ошибку, прежде чем вы проверите, имеет ли значение значение –

Смежные вопросы