如何使用.map lambda表达式每次使用列表中的不同值来应用操作?

时间:2017-11-29 17:51:57

标签: java lambda

原谅我的标题,我不知道如何将这个问题表达为一个问题。

无论如何,我的问题是这个。拿这个函数,

function(object o, String a) { 
    stuff; 
    return new object o;
}

如何使用.map lambda表达式时,我可以按顺序将此操作应用于流中的每个变量,以便我可以像这样调用函数.map(l -> function(l, stringArraylist))因此该函数适用于其arraylist中等效位置的字符串,因为L在其自己的流中。

2 个答案:

答案 0 :(得分:2)

  

该函数适用于其arraylist中等效位置的字符串,因为L在其自己的流中

这有点模糊,但似乎你想对属于两个集合的元素对应用你的function(第一个集合是一些未指定的类型 - 让我们称之为SomeClass - 和另一个是ArrayList<String>)。

function应该做什么并不完全清楚,因为它不是一个有效的Java方法,但基于return语句我假设它应该返回一个与参数{{相同类型的实例} 1}}:

o

为了配对两个集合的元素,您可以创建SomeClass function(SomeClass o, String a) { // some logic return some new instance of SomeClass } 个索引(假设两个集合具有相同数量的元素)。

因此,假设您有IntStreamCollection<SomeClass>,您可以写:

ArrayList<String>

这将导致通过在每对元素上应用Collection<SomeClass> first = ... ArrayList<String> second = ... IntStream.range(0,first.size()) .mapToObj (i -> function(first.get(i),second.get(i))) ... 来创建Stream<SomeClass>。您可以将这些元素收集到function或进行任何其他所需的处理。

例如:

List<SomeClass>

答案 1 :(得分:1)

我想你问一下如何在某个流的map方法中使用Java 8中的<ion-scroll>。 这是一个小例子:

Function<T,R>