java - 在 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]}
解决方案
代替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 )
其中一种方法当然适用于您的代码。
推荐阅读
- maven - Apache cxf-codegen-plugin 未在 Spring Tool Suite 中生成 Java 存根
- python - 使用 python 托盘将 json 文件(3d 绘图)导入 ARCHICAD 24
- ruby-on-rails - 如何从 Rails 缓存哈希上传照片?
- spring - Spring Shedlock 使wiremock 服务器无响应
- c - 为什么会发生这种内存泄漏
- geode - 在 Apache Geode 区域中创建 Lucene 索引
- centos - 我可以在 CentOS 8 上安装 sikuli 吗?
- mysql - 如何在sql中获取字符串的第一个字符集?
- javascript - 如何在 React.js 中正确使用 componentDidMount 和 componentDidUpdate?
- javascript - nextjs api MaxListenersExceededWarning; 在哪里设置 setMaxListeners()