当前位置: 首页 > 知识库问答 >
问题:

收集流到链接列表 [重复]

李浩邈
2023-03-14

当流过< 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.链接列表.

共有2个答案

楚乐逸
2023-03-14

使用构造函数

 filtered = new LinkedList<String>(firstList.stream().filter(t->firstList.contains("p")).collect(Collectors.toList());

链表构造函数将集合作为参数,因此从 asList() 的任何返回都将兼容

黎奇略
2023-03-14

收集(收集器)到列表()返回一个列表。您无法假设它将返回哪个 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 >队列中?