如何使用Scanner从用户获取Hashmap的输入

时间:2017-04-18 16:55:58

标签: java collections hashmap

如何使用扫描仪从用户获取Hashmap的输入并打印相应的散列图

import java.util.HashMap;

public class Map {

public static void main(String[] args) {
 // TODO Auto-generated method stub

  HashMap <Integer,Integer> hmap = new HashMap<Integer,Integer>();
    Scanner in = new Scanner(System.in);

          for(int i=0;i<3;i++){

            Integer a=in.nextInt();

           Integer b=in.nextInt();
           hmap.put(a, b);

           System.out.println(hmap.put(a,b));


        }

    }


  }

我没有得到所需的输出。我想打印hmap中插入的内容。

6 个答案:

答案 0 :(得分:0)

将您的System.out.println声明更改为

System.out.println(hmap.get(a));

答案 1 :(得分:0)

您对此有何看法?这是错的,为什么要打印hmap.put(a,b)

System.out.println(hmap.put(a,b));

将其从for循环中取出并单独打印

 for (Map.Entry<Integer, Integer> pair: hmap.entrySet()) {
  System.out.println(pair.getKey() + "->" + pair.getValue());
}

答案 2 :(得分:0)

可以找到HashMap util的Javadoc here

要将键/值对添加到HashMap,请使用hashmap.put(x, y)

稍后使用hashmap.get(x)将返回y。

编辑:从其他评论看起来,您试图让它打印出键和值。在您尝试打印所有键和值的情况下,这样的事情可能会起作用。

hashMap.forEach((e, k) -> {
    System.out.println("E: " + e + " K: " + k);
})

如果这不是您的预期目的,我强烈建议您阅读javadocs的方法摘要部分。

答案 3 :(得分:0)

这是我们可以在运行时将数据插入Hashmap中的另一种方式:

import java.util.*;

public class Maap {

     public static void main(String[] args) {

         HashMap <Integer,String> hmap = new HashMap<Integer,String>();
         Scanner in = new Scanner(System.in);

         for(int i=0;i<3;i++){

             Integer a=in.nextInt();
             String b=in.next();

             hmap.put(a,b);
  //         System.out.println(hmap.get(b)+" "+hmap.get(a)); 
         }

         for(Map.Entry m:hmap.entrySet()) {    
             System.out.println(m.getKey()+" "+m.getValue());    
         }  
     }
}

答案 4 :(得分:0)

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

class Call {
    
    public static void main(String[] as) {
        getData();
    }

    public static void getData() {
        Map<Integer, String> hashmap = new HashMap<>();
        Scanner sc = new Scanner(System.in);
        System.out.print("Shashank Pathak\nEnter number of character: ");
        int n = sc.nextInt();
        int[] a = new int[n];

        for (int i = 0; i < a.length; i++) {
            Integer b = sc.nextInt();
            String c = sc.nextLine();

            hashmap.put(b, c);
        }

        for (Map.Entry<Integer, String> mp : hashmap.entrySet()) {
            System.out.println("\n" + mp.getKey() + " " + mp.getValue());
        }
    }
}

答案 5 :(得分:0)

我找到了这个,和我想要的完全一样。

System.out.println("How many producs you want");
        int listOfItem = sc.nextInt();
        System.out.println("Type the product name and quantity you want to purchace and get the bill");
        HashMap<Integer, String> products = new HashMap<>();
        while(listOfItem-- >0){
        products.put(sc.nextInt(),sc.nextLine());
        }
        System.out.println(products);

Output of above program