Java8新特性stream循环

加油,新时代打工人!

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应该是不可变的,而我们在累加的过程中,改变了引用变量的值
    }
}
相关推荐
狼爷11 分钟前
Rust/Go/Java/Python/PHP 大比拼:负载下后端框架到底差多少?
java·后端·编程语言
念何架构之路15 分钟前
zap扩展生态与总结
java·前端·数据库
第七页独白1 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库
QCoding1 小时前
Spring AI Alibaba Graph实战:从ReAct Agent到Workflow,企业AI复杂流程该如何编排?
java·人工智能
用户094248568031 小时前
第25章:Java虚拟线程(Project Loom)实战与调度协作
java·jvm
砚底藏山河1 小时前
量化实战:截面因子有效性检验(IC 分析与分层回测)
java·python·金融·maven
wuminyu1 小时前
ForkJoinPool内部WorkQueue的Lock-Free数组操作以及并发任务窃取原理剖析
java·linux·c语言·jvm·c++
Elastic 中国社区官方博客1 小时前
使用 Lucene 搜索你的 Bean — 索引
java·大数据·数据库·elasticsearch·搜索引擎·全文检索·lucene
code2cat2 小时前
Java进阶篇之AtomicMarkableReference:引用还在,标记已经改变
java·开发语言·cas·并发编程·逻辑删除
她说彩礼65万2 小时前
C语言 堆区和栈区
java·linux·c语言