介绍
这篇文章将为大家详细讲解有关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项目中使用