重学-Java for循环
Posted 爱叨叨的程序狗
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重学-Java for循环相关的知识,希望对你有一定的参考价值。
Java共有三种for循环方式:
- fori
- foreach
- Stream.foreach
fori
for (int i = 0; i < arrayList.size(); i++)
// dosomething
fori这种方式是Java最早的for循环方式,由于Java语法糖的不断完善,以及JDK 8的出现,是得此种方式大多数出现在教条的大学课本上,在实际的企业开发中用的较少,目前阿里巴巴的代码检测插件也会提示可以将fori的形式转换为foreach的形式。
foreach
for (String s : arrayList)
// dosomething
即增强for循环,这种方式是第一种fori的语法糖,在编译后,对应的foreach便会自动转换为fori的形式。
Stream.foreach
arrayList.forEach(array ->
// dosomething
);
此种方式是JDK 1.8之后随lambda表达式出现的for循环方式,代码更加简洁,并且可配合其他新特性使用更少的代码、以最简单的形式完成复杂操作,但是使用本方式要注意return
、break
并不能完成在前两者的目的。
代码测试
定义四个元素的List列表,当循环到值为hello1
时输出并返回。
List<String> arrayList = new ArrayList<String>();
arrayList.add("hello");
arrayList.add("hello1");
arrayList.add("hello2");
arrayList.add("hello3");
//① 使用fori的形式
for (int i = 0; i < arrayList.size(); i++)
String s = arrayList.get(i);
System.out.println(s);
if (s.equals("hello1"))
break;
for (int i = 0; i < arrayList.size(); i++)
String s = arrayList.get(i);
System.out.println(s);
if (s.equals("hello1"))
return;
//输出:
hello
hello1
for (String s : arrayList)
System.out.println(s);
if (s.equals("hello1"))
break;
//② 使用增强for循环的方式
for (String s : arrayList)
System.out.println(s);
if (s.equals("hello1"))
return;
//输出
hello
hello1
//③ 使用Stream.foreach的形式
arrayList.forEach(array ->
System.out.println(array);
if (array.equals("hello1"))
break;
);
arrayList.forEach(array ->
System.out.println(array);
if (array.equals("hello1"))
return;
);
//输出:
无输出,编译报错,在Stream.foreach中,无法使用break关键字.
List<String> list = Arrays.asList("123", "456", "789", "115");
list.forEach(element ->
if (element.equals("456"))
// 跳出本次循环
return;
System.out.println(element);
);
//输出:
123
789
115
break :跳出所在的当前整个循环,到循环外层代码继续执行
continue: 跳出本次循环,到下一个迭代循环
return : 直接返回方法,当前方法的后续代码将都不会被执行
注意:在Stream.foreach中,return的作用相当于普通for循环中的continue,即:跳出本次循环,进行下一次,所以在foreach中,无论返回条件是什么,都会将List的每一条信息走完。
以上是关于重学-Java for循环的主要内容,如果未能解决你的问题,请参考以下文章