Поиск значения для данного ключа в HashMap - PullRequest
17 голосов
/ 16 июня 2010

Как вы ищете ключ в HashMap? В этой программе, когда пользователь вводит ключ, код должен организовать поиск по хеш-карте соответствующего значения и затем распечатать его.

Скажите, пожалуйста, почему это не работает?

import java.util.HashMap;

import java.util.; import java.lang.;

public class Hashmapdemo  
{
    public static void main(String args[]) 
    { 
        String value; 
        HashMap hashMap = new HashMap(); 
        hashMap.put( new Integer(1),"January" ); 
        hashMap.put( new Integer(2) ,"February" ); 
        hashMap.put( new Integer(3) ,"March" ); 
        hashMap.put( new Integer(4) ,"April" ); 
        hashMap.put( new Integer(5) ,"May" ); 
        hashMap.put( new Integer(6) ,"June" ); 
        hashMap.put( new Integer(7) ,"July" );  
        hashMap.put( new Integer(8),"August" );  
        hashMap.put( new Integer(9) ,"September");  
        hashMap.put( new Integer(10),"October" );  
        hashMap.put( new Integer(11),"November" );  
        hashMap.put( new Integer(12),"December" );

        Scanner scan = new Scanner(System.in);  
        System.out.println("Enter an integer :");  
        int x = scan.nextInt();  
        value = hashMap.get("x");  
        System.out.println("Value is:" + value);  
    } 
} 

Ответы [ 3 ]

35 голосов
/ 16 июня 2010

Просто позвоните get:

HashMap<String, String> map = new HashMap<String, String>();
map.put("x", "y");

String value = map.get("x"); // value = "y"
2 голосов
/ 16 июня 2010

Вы написали

HashMap hashMap = new HashMap();
...
int x = scan.nextInt();
value = hashMap.get("x");

должно быть:

Map<Integer, String> hashMap = new HashMap<Integer, String>();
...
int x = scan.nextInt();
value = hashMap.get(x);

РЕДАКТИРОВАТЬ или без обобщения, как сказано в комментариях:

int x = scan.nextInt();
value = (String) hashMap.get(new Integer(x));
0 голосов
/ 28 сентября 2015

// Если вы хотите, чтобы ключ был целочисленным, вам придется объявить хэш-карту, как показано ниже:

HashMap<Integer, String> map = new HashMap<Integer, String>();
map.put(0, "x");
map.put(1, "y");
map.put(2, "z");

// ввести целочисленное значение x

String value = map.get(x);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...