2020-3-18 14:30:18 | 作者:老铁SEO | 0个评论 | 人浏览
foreach语句是java5的新特征之一,在遍历数组、集合方面,foreach为开发人员提供了极大的方便。
foreach语法格式如下:
正确用法应该是:
foreach又称增强for,是for循环的一个特殊简化版。
foreach虽然是for循环的简化版本,但是并不是说foreach就比for更好用,foreach适用于循环次数未知,或者计算循环次数比较麻烦情况下使用效率更高,但是更为复杂的一些循环还是需要用到for循环效率更高。
让我们看一下这个例子:
注意事项:
foreach不支持在循环中添加删除操作,因为在使用foreach循环的时候数组(集合)就已经被锁定不能被修改,否则会报出java.util.ConcurrentModificationException异常。
foreach用法
foreach(chararginargs)//"char"是args里面每个元素的类型,arg就是从args里面提取出的“char”类型的一个元素,in是关键字,args就是你要操作的集合类型数据。其实和for()循环类似,只是不需要记录循环步数,同时,在foreach过程中,args是不允许被改变的。
{
if(arg==ch)
{
//存在
}
else
{
//不存在
}
)
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);
}<
>
foreach和for循环区别
1.如果只是遍历集合或者数组,用foreach好些,快些。
2.如果对集合中的值进行修改,就要用for循环了。其实foreach的内部原理其实也是Iterator,但它不能像Iterator一样可以人为的控制,而且也不能调用iterator.remove();更不能使用下标来访问每个元素,所以不能用于增加,删除等复杂的操作。举个例子:
for(Stringaid:list){
if(aid.equals("aa")){
list.remove(aid);//这行会报错,不能修改list的长度
}
}
所以foreach语句是for语句的特殊简化版本,但是foreach语句并不能完全取代for语句。
foreach和map的区别
JS的forEach和map方法都是ES5为处理数组而新增的迭代方法,区别在于map方法返回一个新数组,而forEach方法没有返回值。举个例子:
vararr=[1,2,4,7,8];
//目标:上述数组里的每一项偶数都+1,使整个数组里都是奇数。
//map方法
varresult=arr.map(function(item){
returnitem%2===0?item+1:item;
});
console.log(result);//[1,3,5,7,9]
//forEach方法
varresult=[];
arr.forEach(function(item){
if(item%2===0){
item+=1;
}
result.push(item);
});
console.log(result);//[1,3,5,7,9]<
>
从上述例子可以看出,使用map方法要方便的多,代码也更优雅。这里需要注意的是这两个方法不支持IE9以下的IE浏览器,要兼容的话一般用for循环来实现:
//for循环方法
varresult=[];
for(vari=0;i<arr.length;i++){
if(arr[i]%2===0){
arr[i]+=1;
}
result.push(arr[i]);
}
console.log(result);//[1,3,5,7,9]<
>