mxs*_*cho 3 java list java-8 java-stream
有没有办法将对象附加到列表并以功能性非强制方式将结果返回到一行?如果原始列表也不应该变异,你会怎么做?允许使用Java 8.
我已经知道如何在一行中连接两个列表.(来源)
List listAB = Stream.concat(listA.stream(), listB.stream()).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我也知道如何从一行中的对象列表.
List listO1 = Collections.singletonList(objectA);
List listO2 = Stream.of(objectA, objectB).collect(Collectors.toList());
List listOO = Arrays.asList(objectA, objectB);
Run Code Online (Sandbox Code Playgroud)
有没有什么比用listB
第一行替换下面几行的更好的东西了?
JB *_*zet 15
你可以用
List<Foo> newList =
Stream.concat(list.stream(), Stream.of(fooToAdd))
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
我发现这有点令人费解.力求可读性,而不是寻找单线,更模糊的解决方案.此外,永远不要像你在问题中那样使用原始类型.
您可以使用它var args
并stream
从中创建一个附加到stream
实际的list
,例如:
public static <T> List<T> append(List<T> list, T... args){
return Stream.concat(list.stream(), Stream.of(args))
.collect(Collectors.toList());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5498 次 |
最近记录: |