Java遍历数组是Java程序开发经常用到的,那问题是有哪些遍历的方式?下面我会带着详解5种方式@mikechen
for循环遍历
这是大家最常用的遍历方式,语法格式如下:
for(初始化;布尔表达式;更新){ //代码语句 }
for循环遍历一维数组很简单,一目了解,代码如下:
for(int i = 0; i < arry.length; i++){ system.out.println(arry[i]) }
除此之外,还可以遍历二维数组,需要使用双层for循环,代码如下:
public static void main(String[] args) { int Arr[][]={{1,2,3},{4,5,6}}; for (int i = 0; i < Arr.length; i++) { for (int j = 0; j < Arr[i].length; j++) { System.out.print(Arr[i][j]+" "); } } }
forEach方法
通常遍历数组都是使用for循环来实现的,但是for循环不够简洁,java5之后提供了一种更简洁的循环:foreach循环。
语法格式:
for(type element: array) { System.out.println(element); }
这种循环遍历数组和集合更加简洁,使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索(下标)引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素,比如:
int a[] = {1,2,3,4} ; for (int element:a){ System.out.println(element); }
Java迭代器
在 面向对象编程里,迭代器模式是一种设计模式,迭代器模式提供了一种方法顺序访问一个集合对象中的各个元素,而又不暴露其内部的表示。
Java中也提供了对迭代器模式的支持,主要是针对Java的各种集合类进行遍历。
Integer[] arry = {1,2,3,4,5}; List<Integer> list = Arrays.asList(arry); Iterator<Integer> iterator = list.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); }
这种方式比较烦,一般不建议使用,没有for循环和forEach简单明了。
while循环遍历
while是最基本的循环,语法格式如下:
while(布尔表达式) { //循环内容 }
只要布尔表达式为true,循环就会一直执行下去,我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环,比如:
public static void main(String[] args) { int[] arr = {1,2,3,4,5,6}; int i = 0; while(i < arr.length){ System.out.println(arr[i]); i++; } }
stream遍历
Java8提供了Stream(流)处理集合的关键抽象概念,Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象,它可以对集合遍历。
Arrays.asList(arry).stream().forEach(x -> System.out.println(x));
也可以这样操作:
Arrays.asList(arry).stream().forEach(System.out::println);
陈睿mikechen
10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》