Java中List.forEach()方法使用

Java中List.forEach()方法使用例子 使用 com google guava 包创建集合 List String list Lists newArrayList a b c d 1 正常遍历 list forEach item gt System out println item 2 根据条件遍历 list forEach String

例子:

 // 创建集合 List 
  
    list =Lists.newArrayList("a","b","c","d"); //1、正常遍历 list.forEach(item->System.out.println(item)); //2、条件遍历 list.forEach(item->{ if("b".equals(item)){ System.out.println(item); } 
  

底层实现:

public interface Iterable 
  
    { Iterator 
   
     iterator(); default void forEach(Consumer 
     action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } default Spliterator 
    
      spliterator() { return Spliterators.spliteratorUnknownSize(iterator(), 0); } 
     
    
  

       从源码中可以看到:forEach()方法是Iterable

接口中的一个方法。Java容器中,所有的Collection子类(List、Set)会实现Iteratable接口以实现foreach功能。forEach()方法里面有个Consumer类型,它是Java8新增的一个消费型函数式接口,其中的accept(T t)方法代表了接受一个输入参数并且无返回的操作。

小结:

        foreach相对于for循环,代码减少了,但是foreach依赖IEnumerable(IEnumerable是一个接口,它定义一个方法GetEnumerator,它返回一个IEnumerator接口,这允许只读访问一个集合,然后实现IEnumerable的集合可以与for-each语句一起使用)。在运行的时候效率低于for循环。当然了,在处理不确定循环次数的循环,或者循环次数需要计算的情况下,使用foreach比较方便。而且foreach的代码经过编译系统的代码优化后,和for循环的循环类似。可以说,foreach语句是for语句的特殊简化版本,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。在复杂的循环设计时,还是应该使用for循环更加的灵活。

  •  如果只是遍历集合或者数组,用foreach好些,快些。
  •  如果对集合中的值进行修改,确定循环次数就要用for循环了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/198575.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午2:53
下一篇 2026年3月26日 下午2:54


相关推荐

  • jetbrains全家桶激活码 淘宝上卖的怎么来的【2021最新】

    (jetbrains全家桶激活码 淘宝上卖的怎么来的)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    48
  • EPEL 是什么

    EPEL 是什么EPEL 源 是什么全称 nbsp EPEL 源 nbsp nbsp 来源 https www cnblogs com fps2tao p 7580188 html nbsp nbsp nbsp nbsp nbsp EPEL nbsp ExtraPackage 是基于 Fedora 的一个项目 为 红帽系 的操作系统提供额外的软件包 适用于 RHEL CentOS 和 ScientificLi 使用很简单 1 首先我们需要安装一

    2026年3月18日
    3
  • ubuntu安装go语言_go语言web服务器

    ubuntu安装go语言_go语言web服务器来源:微信公众号「编程学习基地」文章目录简介下载go安装包环境配置添加环境变量第一个go语言程序go入门学习简介go语言是一种开源的、语法精简的静态编程语言,它的开源社区比较庞大,应用场景非常广范。可以用于系统监控、容器技术(Docker)、大数据、存储技术、分布式系统(HyperledgerFabric)、消息系统(Kafka客户端)、服务器管理、安全工具、Web工具等。这里介绍在Linux上安装并配置go。下载go安装包到GoLang中国,下载Go语言安装包。解压tar-xzv..

    2022年10月12日
    3
  • 亲身经历从软通外包到华为OD,两者有什么区别?「建议收藏」

    亲身经历从软通外包到华为OD,两者有什么区别?「建议收藏」亲身经历从软通外包到华为OD,两者有什么区别?声明:本人所有言论仅限2021-04当前真实所在的部门情况。序言​ 坐标南京,本人2014年毕业于211本科院校,16年底加入软通动力,20年初转入华为OD。到如今算是经历了完整的OD模式。从被华为沟通加入OD,尝试第一次了解它的时候开始,网评就在外包/OD/自有三者之间疯狂比较。那本文就从外包/OD到底有什么区别?OD离自有有多远?来说说在如今华为社招基本停工的局面下,该如何面对华为这个ICT巨兽的招聘?希望对有些迷茫的人提供一些帮助。网上的声音有很多,

    2022年7月17日
    80
  • manus邀请码邮箱及申请理由怎么写

    manus邀请码邮箱及申请理由怎么写

    2026年3月15日
    2
  • n8n循环节点如何处理动态数组输入?

    n8n循环节点如何处理动态数组输入?

    2026年3月15日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号