在HashMap中搜索给定键的值

如何在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); } } 

只需致电:

 HashMap map = new HashMap(); map.put("x", "y"); String value = map.get("x"); // value = "y" 

你写了

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

一定是:

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

编辑或没有generics,如评论中所述:

 int x = scan.nextInt(); value = (String) hashMap.get(new Integer(x)); 

//如果你想要键是整数,那么你必须声明hashmap //如下:

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

//输入整数值x

 String value = map.get(x);