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

打印出地图的键和值

羊舌自强
2023-03-14

我创建了一个带有整数类型键的映射,值是字符串集。我已经用一些测试数据填充了映射,现在需要编写一个方法来打印映射的内容,例如“key: value, value, value”

我假设迭代映射,并将键分配给int变量并打印出来是如何开始的,但是我该如何打印字符串集中的值呢?

public class HandicapRecords {

    private Map<Integer, Set<String>> handicapMap;

    public HandicapRecords() {
        handicapMap = new HashMap<>();
    }

    public void handicapMap() {
        Set<String> players = new HashSet<>();

        players.add("Michael");
        players.add("Roger"); 
        players.add("Toby");
        handicapMap.put(10, players);

        players = new HashSet<>();
        players.add("Bethany");
        players.add("Martin");
        handicapMap.put(16, players);

        players = new HashSet<>();
        players.add("Megan");
        players.add("Declan");
        handicapMap.put(4, players);
    }

    public void printMap() {
        //code for method to go here
    }

}

共有3个答案

阎经武
2023-03-14

我想您不会知道键,所以您必须迭代散列映射中的所有条目:

for (Map.Entry<Integer, Set<String>> entry : handicapMap.entrySet())
{
    Integer key = entry.getKey();
    HashSet<String> values = entry.getValue();

    for (String s : values) { 
        // and now do what you need with your collection values
    }
}
施德元
2023-03-14

您给出了use nested for-each循环。我们不能直接遍历HashMaur,获取keySet并打印。示例:

public void printMap()
{
 Set<Integer> keys=handicapMap.keySet();
 for(Integer k:keys)
 {
     Set<String> players=handicapMap.get(k);
     System.out.print(" "+k+":");
     int i=0;
     for(String p:players)
     {
         i++;
         System.out.print(p);
         if(i!=players.size())
             System.out.print(",");
     }
     System.out.println();
 }
}
陶博涉
2023-03-14

您可以像在列表中一样迭代 Set 数据结构(好吧,实际上列表保留了顺序,而集合则没有,但我认为这将超出此问题的范围)。

要打印数据,可以执行以下操作:

for (Integer num : handicapMap.keySet()) {
        System.out.print("Key : " + String.valueOf(num) + " Values:");
        for (String player : handicapMap.get(num)) {
            System.out.print(" " + player + " ");    
        }
        System.out.println();
    }
 类似资料:
  • 问题内容: 我正在尝试打印地图的类型,例如:map [int] string 所以如果我这样做: 我想得到 但我找不到正确的电话。 问题答案: 尽量不要使用。但是,如果您必须使用: 甲值具有函数,该函数返回一个值。 如果该类型为,则这是某些类型T1和T2 的type值,其中T1是键类型,T2是元素类型。 因此,在使用时,我们可以像这样将片段分开: 在Go Playground上查看更完整的示例 。

  • 我不确定此错误消息的含义:*错误:请求成员开始在counter.std::映射

  • 问题内容: 我试图使我的数据集与此示例相对应: 我有一个名称和与那些名称可以引用的特定实体相对应的唯一字母数字值,我们将这些条目称为“ ID”。 因此,例如,可能与ID有关,因为这是一个非常具体的参考,因此没有很多广为人知的具有该名称的图形。然而,可能被附加到,和,引用也许是男人,啤酒和灌木,没有特定的顺序。 看起来像这样(实际的更大): 使用杰克逊,我这样尝试: 但这似乎是错误的,因为我的输出全

  • 我有一个小csv,它有来自英格兰伯明翰的6个坐标。我用pandas读取csv,然后将其转换为GeoPandas数据帧,用形状优美的点更改纬度和经度列。我现在正试图绘制我的GeoDataframe,我能看到的只是点。我怎样才能把伯明翰地图也画出来?如能提供有关GeoPandas的良好文档资料,也将不胜感激。

  • 问题内容: 为什么地图打印混乱,如何使它秩序井然? 打印输出: 问题答案: 码: (其中大部分是从萨默菲尔德先生的书中偷走的) 输出:

  • 我正在寻找一种漂亮的方法来打印地图。 <代码>贴图。toString()给我: