导航:首页 > 编程语言 > java中的foreach

java中的foreach

发布时间:2023-05-29 22:25:57

java8的forEach有哪些坑

结合自身的使用经历,主要还是一些粗心问题,也建议各IDE插件或JDK自身能够有一些语法上的智能检测而不是运行时才做。
1、对当前集合使用forEach是不能在lambda表达式内对当前集合进行调整,这样运行时会异常,编译时不会异常。
2、在forEach中使用泛型集合时需要注意,如果是复合泛型或嵌套泛型可能会有问题,还是建议在使用时能够明确类型。
如题主遇到别的坑还请回复大家一起总结学习!

Ⅱ java遍历数组的Foreach是所有循环语句的简写格式吗

for循环 可以用于遍历数组或集合 可以遍历和修改 数组或集合的值
foreach 是for循环的简写 为了方便 可以避免 数组越界
但要注意:foreach 语句 可以遍历 但是 不可修改 数组或者集合的值

Ⅲ java中for each的用法

foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句,然而,任何的foreach语句都可以改写为for语句版本。
foreach并不是一个关键字,习惯上将这种特殊的for语句格式称之为“foreach”语句。从英文字面意思理解foreach也就是“for 每一个”的意思。实际上也就是这个意思。
foreach的语句格式:
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
下面通过两个例子简单例子看看foreach是如何简化编程的。代码如下:
一、foreach简化数组和集合的遍历
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2007-12-3
* Time: 16:58:24
* Java5新特征之foreach语句使用总结
*/
public class TestArray {
public static void main(String args[]) {
TestArray test = new TestArray();
test.test1();
test.listToArray();
test.testArray3();

}

/**
* foreach语句输出一维数组
*/
public void test1() {
//定义并初始化一个数组
int arr[] = {2, 3, 1};
System.out.println("----1----排序前的一维数组");
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
}

//对数组排序
Arrays.sort(arr);

//利用java新特性for each循环输出数组
System.out.println("----1----排序后的一维数组");
for (int x : arr) {
System.out.println(x); //逐个输出数组元素的值
}
}

/**
* 集合转换为一维数组
*/
public void listToArray() {
//创建List并添加元素
List<String> list = new ArrayList<String>();
list.add("1");
list.add("3");
list.add("4");

//利用froeach语句输出集合元素
System.out.println("----2----froeach语句输出集合元素");
for (String x : list) {
System.out.println(x);
}

//将ArrayList转换为数组
Object s[] = list.toArray();

//利用froeach语句输出集合元素
System.out.println("----2----froeach语句输出集合转换而来的数组元素");
for (Object x : s) {
System.out.println(x.toString()); //逐个输出数组元素的值
}
}

/**
* foreach输出二维数组测试
*/
public void testArray2() {
int arr2[][] = {{4, 3}, {1, 2}};
System.out.println("----3----foreach输出二维数组测试");
for (int x[] : arr2) {
for (int e : x) {
System.out.println(e); //逐个输出数组元素的值
}
}
}

/**
* foreach输出三维数组
*/
public void testArray3() {
int arr[][][] = {
{{1, 2}, {3, 4}},
{{5, 6}, {7, 8}}
};

System.out.println("----4----foreach输出三维数组测试");
for (int[][] a2 : arr) {
for (int[] a1 : a2) {
for (int x : a1) {
System.out.println(x);
}
}
}
}
}
运行结果:
----1----排序前的一维数组
2
3
1
----1----排序后的一维数组
1
2
3
----2----froeach语句输出集合元素
1
3
4
----2----froeach语句输出集合转换而来的数组元素
1
3
4
----4----foreach输出三维数组测试
1
2
3
4
5
6
7
8

Process finished with exit code 0
二、foreach语句的局限性
通过上面的例子可以发现,如果要引用数组或者集合的索引,则foreach语句无法做到,foreach仅仅老老实实地遍历数组或者集合一遍。下面看一个例子就明白了:
/**
* Created by IntelliJ IDEA.
* User: leimin
* Date: 2007-12-3
* Time: 17:07:30
* foreach语句的局限性
*/
public class TestArray2 {

public static void main(String args[]) {
//定义一个一维数组
int arr[] = new int[4];
System.out.println("----未赋值前输出刚刚定义的数组----");
for (int x : arr) {
System.out.println(x);
}

//通过索引给数组元素赋值
System.out.println("----通过循环变量给数组元素赋值----");
for (int i = 3; i > 0; i--) {
arr[i] = i;
}
//循环输出创建的数组
System.out.println("----赋值后,foreach输出创建好的数组----");
for (int x : arr) {
System.out.println(x);
}
}
}

运行结果:
----未赋值前输出刚刚定义的数组----
0
0
0
0
----通过循环变量给数组元素赋值----
----赋值后,foreach输出创建好的数组----
0
1
2
3

Process finished with exit code 0
三、总结
foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。相对老的for语句来说是个很好的补充。提倡能用foreach的地方就不要再用for了。在用到对集合或者数组索引的情况下,foreach显得力不从心,这个时候是用for语句的时候了。foreach一般结合泛型使用

Ⅳ java中for或foreach是如何遍历数组的

String[]array={"1","2","3","4","5"};
//for循环
for(inti=0;i<array.length;i++){
System.out.println(array[i]);
}

//foreach不是java里面的关键字,foreache循环一般是指这个
for(Stringstring:array){
System.out.println(string);
}

Ⅳ java中的foreach语句怎么写

Java 中的 foreach 语句对应基本格式为:
for([type] varName : collection) {
// process
}
如,要遍历一个整数数组的元素,可以这么写:
int[] arr = new int[] {1, 2, 3};
for(int i : arr) {
System.out.println(i);
}

Ⅵ 关于java中c标签foreach的用法

<c:foreach>用法
<c:foreach>类似于for和foreach循环
以下是目前见过的用法:
1、循环遍历,输出所有的元素。
<c:foreach
items="${list}"
var="li">
${li}
</c:foreach>
注意:items
用于接收集合对象,var
定义对象接收从集合里遍历出的每一个元素。同时其会自动转型。
2、循环遍历,输出一个范围类的元素。
<c:foreach
items
="${lis}"
var
=
"li
"
begin="2"
end
="12">
${li}
</c:foreach>
注意:begin
定义遍历的开始位置,end定义遍历的结束位置。begin
和end的引号必须写。
3、循环遍历,输出除某个元素以外的元素或输出指定元素。
<c:foreach
items="${list}"
var
="li"
varStatus="status">
<c:if
text="${status.count==1}>
${"第一个元素不要"}
</c:if>
${li}
</
c:foreach>
注意:varStatus
表示当前集合的状态(其实是不是,我也不太清楚,只知道这样用,会的人指点下),count为循环一个计算器。
4、循环遍历,输出第一个或最后一个元素。
<c:foreach
items="${list}"
var
="li"
varStatus="status">
<c:if
text="${status.first}">我是第一个元素</c:if>
<c:if
text="${status.last}">我是最后一个元素</c:if>
</c:foreach>
注意:first表示如果是一个元素,则返回ture,反之则返回false
last
表示如果是最后一个元素,则返回ture,反之则返回false。
5、循环遍历,按指定步长输出。
<c:foreach
items="list"
var
="li"
step="2">
${li}
</c:foreach>
注意:step为循环的步长。每次隔两个单位输出一个。如:1、3、5、

阅读全文

与java中的foreach相关的资料

热点内容
大象里面的文件夹怎么打开 浏览:953
安卓微信为什么发不了照片 浏览:348
补办绿本解压违法吗 浏览:604
gccwindows命令 浏览:535
日本性电影 浏览:331
都市主角推到母亲姐姐姨妈的长篇小说 浏览:917
免费不用下载网站 浏览:893
可以播放的欧美男男电影 浏览:949
ldx218舵机用单片机控制 浏览:898
河南dns服务器地址大全 浏览:775
中字四级片 浏览:769
青岛本地服务器地址 浏览:987
白鹿原小说免费阅读 浏览:356
女主姓简的小说 浏览:210
提示命令符框 浏览:354
韩剧伦理女同都有哪些 浏览:35
高黄男男小说 浏览:503
华娱小说多女主的小说 浏览:747
收了杨玉环的历史小说 浏览:878
R语音命令 浏览:290