概述
java forEach使用
foreach 是 Java 中的一种语法糖,目的是方便程序员开发和提高性能。其实就是编译期间以特定的字节码或特定的方式来对这些语法进行处理。
1.普通数组forEach用法
对于数组,foreach 循环实际上还是用的普通的 for 循环,怎么说foreach 循环就是for 循环
int[] arr= {1,2,3,4,5}
//forEach写法(效果跟下面同等)
for(int i:arr)
System.out.println("数组元素:"+i);
//普通for循环
for(int i=0;i<arr.length;i++)
System.out.println("数组元素:"+arr[i]);
2.集合类forEach用法
对于集合,foreach 循环实际上是用的 iterator 迭代器迭代,写法也一样。
ArrayList<Integer> arrlist = new ArrayList<Integer>();
arrlist.add(1);
arrlist.add(2);
arrlist.add(3);
//forEach用法
for(Integer a:arrlist)
System.out.println("集合数据:"+a);
//迭代器循环
for(Iterator<Integer> it = arrlist.iterator();it.hasNext();)
System.out.println("集合数据:"+it.next());
3.forEach+lambda
这里调用ArrayList类的forEach方法,然后传入lambda表达式
List<String> items = new ArrayList<>();
items.add("A");
items.add("B");
items.add("C");
//lambd+forEach方法
items.forEach(item->System.out.println("集合数据:"+item));
//forEach方法来自Iterable接口其他类重新
//这里是ArrayList重写forEach方法源码
public void forEach(Consumer<? super E> action) {
Objects.requireNonNull(action);
final int expectedModCount = modCount;
final Object[] es = elementData;
final int size = this.size;
for (int i = 0; modCount == expectedModCount && i < size; i++)
action.accept(elementAt(es, i));
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}
接口方法描述:
default void forEach(Consumer<? super T> action)对Iterable的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。 除非实现类另有规定,否则按照迭代的顺序执行操作(如果指定了迭代顺序)。 动作抛出的异常被转发给呼叫者。
实现要求:
默认实现的行为如下:
for (T t : this) action.accept(t);
4.其他调用方法
//System.out::println这个到底是什么东东,请参考下面博客
items.forEach(System.out::println);
博客:https://blog.csdn.net/nrsc272420199/article/details/84727347
最后
以上就是复杂短靴为你收集整理的java forEach使用的全部内容,希望文章能够帮你解决java forEach使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复