【发布时间】:2017-04-03 12:46:36
【问题描述】:
ArrayList 和 lambda 表达式有问题。我有代码:
MyList<Integer> list = MyList.make(1,2,8, 10, 11, 30, 3, 4);
list.letsGo( (e, i) -> list.set(i, e*2));
e - element
i - index
我应该如何使用(e, i) 实现每个 lambda 表达式?
void letsGo(Function function)
您能帮我实施吗?如何从参数中获取 lambda 表达式?我知道apply 方法,但我不知道如何在那里使用它..
【问题讨论】:
-
首先,如果您知道
apply方法,为什么不直接调用它呢?其次,Function只需要一个参数,但您的 lambda 需要两个参数。因此它们不兼容。在不知道set的签名的情况下,我无法提出替代方案。 -
letsGo方法应该做什么? -
执行 lambda,在那个表达式中,每个元素都应该被 element * 2 替换
-
List<Integer> list=Arrays.asList(1, 2, 8, 10, 11, 30, 3, 4); list.replaceAll(e->e*2);你的MyList课程有什么好处?
标签: java arraylist lambda java-8