当前位置: 首页 > 知识库问答 >
问题:

如何获取用户输入并将其存储到哈希映射中,并分别创建两个键以进行打印?

白嘉志
2023-03-14

我刚刚开始学习HashMap,我可以打印它们,但我很难找到如何获取两个值的用户输入,存储它们,然后打印它们。

还是我以错误的方式看待这个问题?

System.out.println("Let us know about your pets!");     
Map<String, String> pets = new HashMap<>();

String userInput; 
String name;
String type;        
int numberOfPets = 0; 
boolean valid = true; 

try (Scanner scnr = new Scanner(System.in)) {
   do { 
      System.out.println("Enter a name: ");
      name = userInput.put(scnr.nextLine());

      System.out.println("What type of animal is " + (name));
      type = userInput.put(scnr.nextLine());

      System.out.println("Would you like to enter another? (y/n) ");

      numberOfPets++; 

    } while (scnr.next().equalsIgnoreCase("y"));

}

System.out.println("You entered" + number of pets +"pets.");
for (String key : pets.keySet()) {
    System.out.println(key + " is a " + pets.get(key));
}

我希望结果如下:

输入名称:{用户输入尤斯坦斯}

尤斯坦斯是什么类型的动物:

{用户进入龙}

您想输入其他宠物吗?

{是}输入

一个名称: {用户输入锐皮切}

雷佩契普是什么类型的动物:

{用户输入鼠标}

您想输入其他宠物吗?

{不}

您输入了2只宠物。

输入一个宠物的名字(或键入END退出):{用户输入雷佩契普传}雷佩契普传是一只老鼠。

共有2个答案

薄鸿远
2023-03-14

您有“读取”操作:

pets.get(key)

您只需要一个“写”操作(在输入循环期间):

pets.put(key, value)

有关完整信息,请查看Map的JavaDocs,例如:

https://docs.oracle.com/javase/8/docs/api/java/util/Map.html

你可以用地图做各种各样的事情!

狄阳秋
2023-03-14

您需要更改代码以在哈希映射中存储名称和类型,如下所示,以便以后只需使用peets.get(...) 即可检索它

try (Scanner scnr = new Scanner(System.in)) {
    do {
        System.out.println("Enter a name: ");
        name = scnr.nextLine();

        System.out.println("What type of animal is " + (name));
        type = scnr.nextLine();

        // change made here 
        pets.put(name, type);

        System.out.println("Would you like to enter another? (y/n) ");

        numberOfPets++;

      // here as well coz scanner was skipping the input
    } while (scnr.nextLine().equalsIgnoreCase("y")); 

}
 类似资料:
  • 要将类放入HashMap中。为此,我用@Service创建了一个Bean。就是这样: 这样做对吗?

  • 我使用stackoverflow链接中的第一个解决方案来创建和读取一个包含两个键和一个值的hashMap。即 如何将键/值对放在这个HashMap上? 简而言之,我希望做相当于 但对于多键hashmap。

  • 本文向大家介绍Java中并发哈希映射和同步哈希映射之间的区别,包括了Java中并发哈希映射和同步哈希映射之间的区别的使用技巧和注意事项,需要的朋友参考一下 并发Hashmap是jdk1.5中引入的类。并发哈希映射仅在添加或更新映射时在称为片段的存储桶级别应用锁。因此,并发哈希映射允许对映射进行并发读写操作。  同步hashmap(Collection.syncronizedHashMap())是C

  • 问题内容: 我正在使用Android Marshmallow和Moto G4以及用于测试的设备。 我想创建一个应用程序,它将使用指纹输入并保存在本地数据库(sqlite)中,或者到数据库,我的意思是我们可以接受并保存指纹的类型是什么? 问题答案: 您无法从android Fingerprint API获取指纹模板或图像。指纹数据由android系统存储在安全的地方,无法访问。 但是您可以要求系统对

  • 我有一个代码,我需要跟踪不同类别中给定位置的一些值(随机出现)(并且数量相当大;~40,000),所以我认为散列散列是最好的方法,类别作为第一层键,位置作为第二层,值作为值;类似于: 然后,我需要按照这两个类别的顺序对它们进行排序和打印,然后进行定位,得到如下输出文件: 但是我无法计算出嵌套排序的语法(或者,有人比这种方法有更好的想法吗?

  • 问题内容: 我选择使用“ Jenkins自己的用户数据库”安全领域进行用户登录,因为我无法在公司中使用LDAP。当您决定将主机名或端口号更改为其他名称时,Google的OpenID就会出现问题。 为了安全起见,我使用“基于项目的矩阵授权策略”架构。 但是我似乎无法创建自己的网上论坛,也无法将用户添加到该网上论坛来管理权限。 问题答案: 根据Jenkins首席开发人员Kohsuke Kawaguch