如何遍历 2D LinkedHashSet 并打印其内容?

How to iterate through a 2D LinkedHashSet and print its contents?

我正在为我的程序使用 2D LinkedHashSet。我想知道如何在不执行此操作的情况下遍历二维 HashSet 并打印其内容:

System.out.println(初始化哈希集的名称)

这是我的 2D LinkedHashSet 初始化代码:

LinkedHashSet<LinkedHashSet<String>> block = new LinkedHashSet<LinkedHashSet<String>>();

您可以为此使用 2 个循环,类似于您对数组的处理方式:

for (Set<String> innerSet : block) {
    for (String string : innerSet) {
        System.out.println(string);
    }
}

您还可以使用流来打印每个元素:

block.stream()
        .flatMap(Collection::stream)
        .forEach(System.out::println);

如果想使用功能性解决方案,可以使用以下方法:

Ideone demo

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();
        });
    }
}