首页 > 解决方案 > 在 Java 中添加到地图

问题描述

嗨,我正在尝试将国家/地区添加到地图中,请参见下面的代码。我可以输入国家,但我的输出不是我所期望的。该集合打印了 4 次,我希望每个国家/地区计算表格 1-4 而不是每个集合。你能帮我吗?

    /**
      * MY CODE SO FAR = pleae can you help
      */
    
       import java.util.*;

    class EuroGroupStages {
    
    public static void main(String args[]) {

         Map<Integer, Set<String>> groupA;
         Map<Integer, Set<String>> groupB;
         Map<Integer, Set<String>> groupC;
         Map<Integer, Set<String>> groupD;
         
//public EuroGroupStages() 
//  {
    groupA = new TreeMap<>();
    groupB = new TreeMap<>();
    groupC = new TreeMap<>();
    groupD = new TreeMap<>();
//  }
         
//public void addCountries()
//  {
        Scanner keyboard = new Scanner(System.in);
        Set<String> country = new HashSet<>();
        String aCountry;
        
        for(int i = 1; i < 5; i++)
        {
            System.out.print("Please enter a country");
            aCountry = keyboard.next();
            country.add(aCountry);
            groupA.put(i, country);
        }
        
        System.out.println(groupA);
        
        keyboard.close();
//  }

    }
}
        
        
        {1=[England, Scotland, Czech, Croatia], 2=[England, Scotland, Czech, Croatia], 3=[England, Scotland, Czech, Croatia], 4=[England, Scotland, Czech, Croatia]}

标签: javaloopsmaps

解决方案


代替System.out.println(groupA);

试着写:

  for(int i = 1; i < 5; i++)
        {
            System.out.println(groupA.get(i));
        }

用于获取每个键的值groupA

编辑:

以下是获取键+值组合的一些示例:( https://www.techiedelight.com/iterate-map-using-keyset-java/ )

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.stream.Stream;
 
public class Main
{
    // Program to iterate map using `keySet()` in Java
    public static void main(String[] args)
    {
        Map<Integer, String> map = new HashMap<>();
        map.put(1, "One");
        map.put(2, "Two");
        map.put(3, "Three");
        map.put(4, "Four");
 
        // 1. Using an iterator
        Iterator<Integer> itr = map.keySet().iterator();
        while (itr.hasNext())
        {
            Integer key = itr.next();
            String value = map.get(key);
            System.out.println(key + "=" + value);
        }
 
        // 2. For-each loop
        for (Integer key: map.keySet()) {
            System.out.println(key + "=" + map.get(key));
        }
 
        // 3. Java 8 - Iterator.forEachRemaining()
        map.keySet()
            .iterator()
            .forEachRemaining(key -> System.out.println(key + "=" + map.get(key)));
 
        // 4. Java 8 - Stream.forEach()
        map.keySet().stream()
            .forEach(key -> System.out.println(key + "=" + map.get(key)));
 
        // 5. Java 8 - Stream.of() + toArray() + forEach()
        Stream.of(map.keySet().toArray())
            .forEach(key -> System.out.println(key + "=" + map.get(key)));
    }
}

代码可在 java-online 编译器中编译:( https://www.tutorialspoint.com/compile_java_online.php )

其中一种方法当然适用于您的代码。


推荐阅读