我正在为程序使用2D LinkedHashSet。我想知道如何在不执行此操作的情况下遍历二维HashSet并打印其内容:
System.out.println(已初始化的HashSet的名称)
这是我用于2D LinkedHashSet初始化的代码:
LinkedHashSet<LinkedHashSet<String>> block = new LinkedHashSet<LinkedHashSet<String>>();
答案 0 :(得分:4)
您可以使用2个循环,类似于对数组的循环:
for (Set<String> innerSet : block) {
for (String string : innerSet) {
System.out.println(string);
}
}
您还可以使用流来打印每个元素:
block.stream()
.flatMap(Collection::stream)
.forEach(System.out::println);
答案 1 :(得分:2)
如果要使用功能性解决方案,则可以使用以下内容:
import java.util.LinkedHashSet;
public class Streamify {
public static void main (final String... args) {
final LinkedHashSet<LinkedHashSet<String>> block = new LinkedHashSet<>();
final LinkedHashSet<String> lineOne = new LinkedHashSet<>();
lineOne.add("Hello");
lineOne.add("World");
block.add(lineOne);
final LinkedHashSet<String> lineTwo = new LinkedHashSet<>();
lineTwo.add("Hi");
lineTwo.add("Universe");
block.add(lineTwo);
block.forEach(line -> {
line.forEach(System.out::print);
System.out.println();
});
}
}