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

时间:2019-12-26 23:46:39

标签: java linkedhashset

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

System.out.println(已初始化的HashSet的名称)

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

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

2 个答案:

答案 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)

如果要使用功能性解决方案,则可以使用以下内容:

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