Java最高

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>看看这个课程

1.概述

在这篇快速文章中,我们将探索如何在Java中扁平化嵌套集合。

2.嵌套集合的示例

假设我们有一个列表类型的列表字符串

List> nestedList = asList(asList(" 1: 1 "), asList("two:one", "two:two", "two:three"), asList("three:one", "three:two", "three:three"));

3.压扁的列表forEach

为了将这个嵌套集合平展成一个字符串列表,我们可以使用forEach连同Java 8方法参考:

public  List扁平化listoflistsimperatively (List> nestedList) {List ls = new ArrayList<>();nestedList.forEach (ls: addAll);返回ls;}

这里你可以看到这个方法的实际操作:

@Test public void givennestedlist_then扁平化(){List ls =扁平化listoflistsimperatively (nestedList);assertNotNull (ls);assertTrue (ls.size () = = 8);为了(ls, IsIterableContainingInOrder。包含(“一:一”、“二:一”,“两个:两个”,“2:3”,“三:一个”,“3:2”,“3:3”,“三:四”));}

4.压扁的列表flatMap

属性也可以使嵌套列表变平flatMap方法从API。

这使得我们可以将嵌套的部分压平结构并最终将所有元素收集到一个特定的集合中:

public  List扁平化listoflistsstream (List> List) {return List .stream() .flatMap(Collection::stream) .collect(collators . tolist ());}

下面是其中的逻辑:

@Test public void givennestedlist_then扁平化函数(){List ls =扁平化listoflistsstream (nestedList);assertNotNull (ls);assertTrue (ls.size () = = 8);}

5.结论

一个简单的forEach或flatMapJava 8中的方法,结合方法引用,可以用于扁平化嵌套集合。

您可以找到本文讨论的代码在GitHub

Java底部

开始使用Spring 5和Spring Boot 2,通过学习的春天课程:

>>看看这个课程
对这篇文章的评论关闭!