将Java 8流与lambda结合使用以处理for循环,并调用具有多个parm的方法

时间:2018-06-26 16:27:53

标签: java loops lambda

我有一个for循环,处理两个字符串列表,该列表调用具有多个参数的方法,返回一个对象,该对象被添加到列表中

我想为此有效地利用stream / lambda,有人可以指导我吗 我有两个传入的字符串列表“ AAA,BBB,CCC”和对应的数量列表为“ 1、3、11”

final List<someObj> someObjs = new ArrayList<someObj>() ;

final List<String> codesList = Arrays.asList(codes.split("\\s*,\\s*"));
final List<String> qtysList  = Arrays.asList(qtys.split("\\s*,\\s*"));

for (String code: codesList){
    someObjs.add(addThis(code, qtysList.get(index++)));//
}

return someObj;

如何使用lambdas进行转换?预先感谢!

1 个答案:

答案 0 :(得分:2)

怎么样,

final List<SomeObj> someObjs = IntStream.range(0, codesList.size())
        .mapToObj(i -> addThis(codesList.get(i), qtysList.get(i)))
        .collect(Collectors.toList());