当流过< code>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.数组列表不能转换为 java.util.链接列表.
使用构造函数
filtered = new LinkedList<String>(firstList.stream().filter(t->firstList.contains("p")).collect(Collectors.toList());
链表构造函数将集合
作为参数,因此从 asList()
的任何返回都将兼容
收集(收集器)到列表()
返回一个列表
。您无法假设它将返回哪个 List
实现。
使用Collectors.toCollection()
,指定您希望将数据收集到的实际Collection
(或List
)实现:
LinkedList<String> filtered =
firstList.stream()
.filter(t->firstList.contains("p"))
.collect(Collectors.toCollection(LinkedList::new));
我一直在研究如何将IntStream“收集”到一个列表中从而生成一个随机的int列表,但是编译器一直在抱怨。下面是一段代码: 编译器给出的错误: 错误:(42,49)Java:接口java.util.Stream.IntStream中的方法collect不能应用于给定类型; 必需:java.util.function.supplier,java.util.function.objintconsum
我有这个代码: 它产生的是 很高兴我应该如何写映射方法来得到一个地图,它会给我:
出了什么问题?
我有一个列表的地图,并希望收集所有的值,然后流在收集的列表上,所以给出:- 下面的工作/显示了我想用迭代做什么,但我想在流中做这些,而不是使用迭代创建一个中间列表:- 因此,我希望将列表的映射流化到一个列表中,然后在一个流中处理该子列表,而不是必须在两个语句中完成上述操作(即通过迭代构建列表,然后进行流化以筛选/排序和收集)。 到目前为止,我还没有做到这一点,当我尝试流式/收集地图时,我会遇到编译
如何将流收集到我指定的子类型列表中? 换句话说,我希望这个测试通过。我应该在注释行上执行哪些操作才能将流转换为 实例?
我有以下代码: 如您所见,我需要将< code >流的元素收集到< code >队列中,而不是< code >列表中。但是,没有< code > collectors . to queue()方法。如何将元素收集到< code >队列中?