【发布时间】:2017-04-25 12:49:25
【问题描述】:
有没有一种方法可以将一个对象附加到一个列表中,并以一种功能性非命令式的方式在一行中返回结果? 如果原始列表也不应该被改变,你会怎么做? 允许使用 Java 8。
我已经知道如何在一行中连接两个列表。 (Source)
List listAB = Stream.concat(listA.stream(), listB.stream()).collect(Collectors.toList());
我也知道如何在一行中列出对象。
List listO1 = Collections.singletonList(objectA);
List listO2 = Stream.of(objectA, objectB).collect(Collectors.toList());
List listOO = Arrays.asList(objectA, objectB);
有什么比将第一行中的listB 替换为以下行的一部分更好的方法吗?
【问题讨论】:
-
你试过 listA.clone().append(objectB) 吗?
-
@bracco23
List<T>接口没有公开append(...)方法,是吗? -
它也不暴露 clone()。
-
@JBNizet 我知道,但我没有提到它,因为假设我可以使用实际对象而不是
List<T>类型的变量,这离现实并不遥远。跨度> -
@mxscho 你是对的,它没有,但它暴露了 add(...) 并且 JavaDoc 说添加的元素位于列表的末尾。相同的行为,不同的名称。
标签: java list java-8 java-stream