【发布时间】:2016-07-18 09:56:04
【问题描述】:
通过List 流式传输时,如何将输出收集到链表?
我尝试了以下方法:
public static void main(String[] args) {
List<String> firstList = new ArrayList<>();
firstList.add("pavan");
firstList.add("kumar");
LinkedList<String> filtered= new LinkedList<>();
filtered = (LinkedList<String>) firstList.stream().filter(t->firstList.contains("p")).collect(Collectors.toList());
System.out.println(filtered);
}
但这给 java.util.ArrayList 不能转换为 java.util.LinkedList。
【问题讨论】:
-
是否有特殊原因为什么您需要
LinkedList并且不能针对List接口进行编码? -
我想用LinkedList实现的Deque接口方法
-
好的,最好还是针对接口编写代码并将变量声明为
Deque<String>。 -
@MickMnemonic 怎么样
-
这样做会使以后切换到另一个实现变得更简单(例如
ArrayDeque、ConcurrentLinkedDeque、LinkedBlockingDeque)。总的来说,这是一个好主意的更多原因,请参见这篇文章:What does it mean to “program to an interface”?
标签: java java-8 java-stream