【发布时间】:2017-09-10 19:31:42
【问题描述】:
有如下示例代码(此示例代码只是为了说明具体问题而写的):
package test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
private static List<Integer> integerList = Arrays.asList(1,3,5,7,9,11,13);
private static Map<Integer, Integer> integerMap = new HashMap<>();
public static void main(String[] args) {
Integer number = 0;
for (Integer integer : integerList) {
integerMap.put(number, integer);
number++;
}
System.out.println(integerMap.get(3));
}
}
我想使用 stream() 和 forEach() 将其转换为 Lambda 表达式,但由于我有一个变量 number 不是 final(根据 lambda 表达式中的要求),那么这个特定的 for 循环是不适合转成lambda表达式?
【问题讨论】:
-
上面的代码有什么问题?为什么一定要stream/forEach?
-
没什么,只是想利用Java 8中引入的
stream()和forEach()的内部迭代器特性。
标签: for-loop lambda foreach java-8 java-stream