foreach循环怎么在java8项目中使用

  介绍

这篇文章将为大家详细讲解有关foreach循环怎么在java8项目中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

<强> 1。首先遍历一个列表

<强>方式1。一开始是这样的:

公共静态孔隙test1 (List列表){
  for (int i=0;我& lt;list.size ();我+ +){
  System.out.println (list.get (i));
  }
  }

<>强方式2所示。当然稍微高级一点的是这样:

公共静态孔隙test2 (List列表){
  for (int i=0,长度=list.size ();我& lt;分割;我+ +){
  System.out.println (list.get (i));
  }
  }

<>强方式3所示。还有就是迭代器遍历:

公共静态孔隙test3 (List列表){
  Iterator迭代器=list.iterator ();
  而(iterator.hasNext ()) {
  System.out.println (iterator.next ());
  }
  }

<>强方式4。后来有了增强的循环:

公共静态孔隙test4 (List列表){
  (字符串str:列表){
  System.out.println (str);
  }
  }

<>强方式5所示。java8以后新增的方式:

公共静态孔隙test5 (List列表){//list.forEach (system . out:: println);和下面的写法等价
  list.forEach (str→{
  System.out.println (str);
  });
  }

<>强方式6。还有另一种:

公共静态孔隙test6 (List列表){
  list.iterator () .forEachRemaining (str→{
  System.out.println (str);
  });
  }

应该没有其他的了吧,上面六中方法,按我的使用习惯5最常用,4偶尔使用,其他的基本就不怎么用了,使用5的原因是因为方便书写,提示就可以写出来,偶尔使用4的原因是,5不方便计数用,下面进行性能测试,字符串不具备代表性,决定使用对象,简单的一个测试类如下:

一个简单的测试,内容不要太在意,简单计算hashCode:

包测试;
  进口java.util.ArrayList;
  进口java.util.Iterator;
  进口并不知道;
  公开课Test8 {
  公共静态void main (String [] args) {
  List,列表=new ArrayList<的在();
  (int i=0; i<10;我+ +){
  列表。添加(新狗(我,“dog" + i));
  }
  长nanoTime=system . nanoTime ();
  test1(列表);
  长nanoTime1=system . nanotime ();
  test2(列表);
  长nanoTime2=system . nanotime ();
  test3(列表);
  长nanoTime3=system . nanotime ();
  test4(列表);
  长nanoTime4=system . nanotime ();
  test5(列表);
  长nanoTime5=system . nanotime ();
  test6(列表);
  长nanoTime6=system . nanotime ();
  System.out.println ((nanoTime1-nanoTime)/1000000.0);
  System.out.println ((nanoTime2-nanoTime1)/1000000.0);
  System.out.println ((nanoTime3-nanoTime2)/1000000.0);
  System.out.println ((nanoTime4-nanoTime3)/1000000.0);
  System.out.println ((nanoTime5-nanoTime4)/1000000.0);
  System.out.println ((nanoTime6-nanoTime5)/1000000.0);
  }
  公共静态孔隙test1 (List列表){
  for (int i=0;我& lt;list.size ();我+ +){
  list.get (i) .hashCode ();
  }
  }
  公共静态孔隙test2 (List列表){
  for (int i=0,长度=list.size ();我& lt;分割;我+ +){
  list.get (i) .hashCode ();
  }
  }
  公共静态孔隙test3 (List列表){
  Iterator迭代器=list.iterator ();
  而(iterator.hasNext ()) {
  .hashCode iterator.next () ();
  }
  }
  公共静态孔隙test4 (List列表){
  (狗狗:列表){
  dog.hashCode ();
  }
  }
  公共静态孔隙test5 (List列表){//list.forEach (system . out:: println);和下面的写法等价
  list.forEach(狗→{
  dog.hashCode ();
  });
  }
  公共静态孔隙test6 (List列表){
  list.iterator () .forEachRemaining(狗→{
  dog.hashCode ();
  });
  }
  }
  狗类{
  私人int年龄;
  私人字符串名称;
  公共的狗(int年龄、字符串名称){
  超级();
  这一点。年龄=年龄;
  this.name=名称;
  }
  公共int getAge () {
  返回年龄;
  }
  公共空间setAge (int年龄){
  这一点。年龄=年龄;
  }
  公共字符串getName () {
  返回名称;
  }
  公共空间setName(字符串名称){
  this.name=名称;
  }
  @Override
  公共字符串toString () {
  返回“狗(年龄=?+年龄+“name=?+名称+“]”;
  }
  }

foreach循环怎么在java8项目中使用