Java Streams,跳过元素列表流中每个列表中的第一项

Gav*_*vin 2 java java-stream

我在一个列表中有许多输入表,每个输入表都有一个标题行,我想忽略它。

最小的例子:

List<String> a = Arrays.asList("header", "v1", "v2", "v3");
List<String> b = Arrays.asList("header", "a1", "a2");
List<String> c = Arrays.asList("header", "b1", "b2", "b3", "b4");

List<List<String>> data = Arrays.asList(a, b, c);

List<String> result = data.stream()
    .map(t -> t.subList(1, t.size()))
    .flatMap(List::stream)
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

有没有一种“更好”的方法来跳过标题行然后map在每个表上使用?

注意:我使用的是 Java 8 并且无法迁移到更新的 JDK

Era*_*ran 5

使用skip()

List<String> result = data.stream()
    .flatMap(t -> t.stream().skip(1))
    .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)