加油,新时代打工人!
java
public static void main(String[] args) {
HashMap<Integer,String> map =new HashMap<>();
map.put(1,"小米");
map.put(2,"小明");
map.put(3,"小红");
List<HashMap<Integer,String>> map2 =new ArrayList<>();
map2.add(map);
System.out.println("方式二>>map.entrySet().stream.forEach()遍历---Stream流遍历");
for(HashMap<Integer,String> map3 :map2){
map3.entrySet().stream().forEach((Map.Entry<Integer,String> entry) -> {
System.out.print(entry.getKey());
System.out.println(entry.getValue());
});
}
System.out.println("方式一>>map.entrySet().stream.forEach()遍历---Stream流遍历");
for (int j = 0; j < map2.size(); j++) {
int finalJ = j;
map2.get(j).entrySet().stream().forEach((Map.Entry<Integer,String> entry) -> {
System.out.print(entry.getKey()+ finalJ);
System.out.println(entry.getValue());
});
}
System.out.println("map.keySet().stream.forEach()遍历---Stream流遍历");
map.keySet().stream().forEach(key -> {
System.out.println(map.get(key));
});
}
java
import java.util.Arrays;
import java.util.List;
/**
从lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量
* 我们想将一个Integer型的列表中的值求和,如果在外面定义一个全局变量用于记录最终的值,初始化为0
*/
public class Test_03 {
public static void main(String[] args) {
Integer[] arr={1,2,3,4,5};
List<Integer> list = Arrays.asList(arr);
Integer sum=0;
//合法的,lambda表达式中可以引用值
list.forEach(item-> System.out.println(item+"---"+sum));
list.forEach(item->sum+=item);
//Error: 从lambda 表达式引用的本地变量必须是最终变量或实际上的最终变量
//说明:也就是说我们在这里引用的值item应该是不可变的,而我们在累加的过程中,改变了引用变量的值
}
}