Java中增强for循环代码示例
增强for循环(Enhanced for loop),也被称为for-each循环,是一种简化遍历数组和集合元素的语法结构。它可以遍历数组、集合或其他实现了Iterable接口的数据结构。
增强for循环的语法结构如下:
for (元素类型 变量名 : 需要遍历的数组或集合) { // 进行操作 }
其中,元素类型表示数组或集合中元素的类型,变量名表示每次迭代中获取到的当前元素的值。在循环体中,可以直接使用变量名访问当前的元素,并执行相应的操作。增强for循环的优点是简洁、易读,并且能够避免索引操作,适用于不需要修改数组或集合元素的情况。
以下是一个示例,展示如何使用增强for循环遍历数组和集合:
//数组 int[] numbers = {1, 2, 3, 4, 5}; for (int number : numbers) { System.out.println(number); } //集合 ArrayList<String> names = new ArrayList<>(); names.add("测试"); names.add("你好"); for (String name : names) { System.out.println(name); }
在上述示例中,第一个循环使用增强for循环遍历整型数组numbers
,并将每个元素打印出来。第二个循环使用增强for循环遍历字符串类型的ArrayList集合names
,同样将每个元素打印出来。需要注意的是,增强for循环不能对集合进行修改(添加、删除等)。如果需要在循环过程中对集合进行操作,仍然需要使用迭代器或传统的for循环。
增强for循环适用于只需要访问数组或集合中的每个元素,并且不需要索引或迭代器的情况。它提供了一种简洁而直观的方式来遍历数组或集合中的元素。需要注意的是,增强for循环是只读的,即不能通过它来修改数组或集合中的元素。如果需要修改元素,仍然需要使用传统的for循环或迭代器来完成。
附:定制自己的增强for循环
众所周知,增强for循环是按数组或者集合的内在顺序输出的,如果我们想在遍历的时候定制行为怎么做呢?下面就以一个逆序输出的例子说明怎么定制自己的增强for循环。
要想使用增强for循环,必须实现Iterable接口。
import java.util.Iterator; /** * 一个简单的逆序输出增强for循环 * @author * */ public class ReverIterableClass<T> implements Iterable<T> { protected T[] elements; public ReverIterableClass(T... elems) { this.elements=elems; //this.object=(T[])new Object[ts.length]; } public Iterator<T> iterator() { return new Iterator<T>(){ private int current=elements.length-1; public boolean hasNext() { return current>-1; } public T next() { return elements[current--]; } public void remove() { throw new UnsupportedOperationException("目前不支持删除操作"); } }; } public static void main(String[] args){ ReverIterableClass<String> iterableClass=new ReverIterableClass<String>("a","b","c","d"); for(String s:iterableClass){ System.out.println(s); } } }
在这个程序里我们定制了自己的输出行为--逆序输出,当然你也可以定义属于你自己的,只需要在next()函数里写处理代码即可。
总结
到此这篇关于Java中增强for循环代码示例的文章就介绍到这了,更多相关Java 增强for循环内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java17中record替代Lombok部分功能使用场景探究
这篇文章主要介绍了使用Java17中的record替代Lombok的部分功能,本文来为大家小小的总结下,我们可以在哪些地方,利用record来替换Lombok2024-01-01Java调用shell命令涉及管道、重定向时不生效问题及解决
这篇文章主要介绍了Java调用shell命令涉及管道、重定向时不生效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-12-12Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意点
有时候很多css文件是公共的,我们必须要在每个html文件中引入它们,下面这篇文章主要给大家介绍了关于Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意点,需要的朋友可以参考下2024-06-06SpringCloud Feign集成AOP的常见问题与解决
在使用 Spring Cloud Feign 作为微服务通信的工具时,我们可能会遇到 AOP 不生效的问题,这篇文章将深入探讨这一问题,给出几种常见的场景,分析可能的原因,并提供解决方案,希望对大家有所帮助2023-10-10
最新评论