首页 > 解决方案 > Java 8 Stream vs For 循环 - 修改列表中的对象,使用另一个列表中对象的属性

问题描述

我有以下列表:

List<Token> originals
List<Token> modified

Token类如下:

class Token
{
    private String value;
    private String rawValue;
}

我想将rawValue中所有Token对象的originals替换为中相应索引处rawValue的对象的。保证两个列表的长度相等。Tokenmodified

这是伪代码:

for i in originals.length
    originals[i].rawValue = modified[i].rawValue

有没有办法使用 Stream 做到这一点?或者在这里使用 For 循环更简单、更易读?

标签: javajava-stream

解决方案


IntStream.range(0, originals.size())
        .forEach(i ->  originals.get(i).rawValue = modified.get(i).rawValue);

推荐阅读