gpt4 book ai didi

Java 8 流 - 在流操作中使用原始流对象

转载 作者:行者123 更新时间:2023-11-30 06:04:54 25 4
gpt4 key购买 nike

我正在对 Integer 数组运行 Stream 操作。
然后,我创建了一个 Cell 对象,该对象执行一些操作并应用过滤器,
我想创建一个 IntegerCell 的映射,只有有效的 Cell

沿着这条线的东西:

List<Integer> type = new ArrayList<>();

Map<Integer, Cell> map =
list.stream()
.map(x -> new Cell(x+1, x+2)) // Some kind of Manipulations
.filter(cell->isNewCellValid(cell)) // filter some
.collect(Collectors.toMap(....));

是否可以在流操作中使用原始流对象?

最佳答案

如果您的 map 操作创建了一些包含它的实例,您可以存储原始的 Stream 元素。

例如:

Map<Integer, Cell> map =
list.stream()
.map(x -> new SomeContainerClass(x,new Cell(x+1, x+2)))
.filter(container->isNewCellValid(container.getCell()))
.collect(Collectors.toMap(c->c.getIndex(),c->c.getCell()));

有一些现有的类你可以使用而不是创建你自己的SomeContainerClass,比如AbstractMap.SimpleEntry:

Map<Integer, Cell> map =
list.stream()
.map(x -> new AbstractMap.SimpleEntry<Integer,Cell>(x,new Cell(x+1, x+2)))
.filter(e->isNewCellValid(e.getValue()))
.collect(Collectors.toMap(Map.Entry::getKey,Map.Entry::getValue));

关于Java 8 流 - 在流操作中使用原始流对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48147392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com