java遍歷List的多種方法【多種多種,很多種,小編就比較喜歡jdk8以上的遍歷方式:test9();test8();test6();都非常好用】
package com.gzu.pyu.thinking.in.java; import org.junit.jupiter.api.Test; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.function.Consumer; /** * java遍歷List的多種方法 * 分為類 * 1、普通的循環遍歷 * 2、jdk8以上的新特性
* 3、注意需要引入Test包,junit測試【若不想Junit測試,寫main方法測試是相同的效果】 * * @author pyu */ public class TraverseList { /** * 初始化一個有值的List * 使用LinkedList維護一個插入順序,方便觀察遍歷時的順序 */ private static List<String> traverseList=new LinkedList<String>(){{ add("gzu "); add("pyu "); add("thinking "); add("in "); add("java "); }}; /** * ********************************************* * 以下為jdk8及以上的遍歷方式 */ /** * 非常特殊的用法,與traverseList.iterator()方法類似,更強大;只有List借口特有用法 */ @Test public void test9(){ System.out.print("TraverseList method9:"); ListIterator<String> listIterator = traverseList.listIterator(); while (listIterator.hasNext()){ System.out.print(listIterator.next()); } System.out.println(); } @Test public void test8(){ System.out.print("TraverseList method8:"); traverseList.forEach(str->{ System.out.print(str); }); System.out.println(); } @Test public void test7(){ System.out.print("TraverseList method7:"); traverseList.forEach(new Consumer<String>() { @Override public void accept(String str) { System.out.print(str); } }); System.out.println(); } /** * 多線程並行執行 */ @Test public void test6(){ System.out.print("TraverseList method6:"); traverseList.parallelStream().forEach(str->{ System.out.print(str); }); System.out.println(); } /** * 串行執行 */ @Test public void test5(){ System.out.print("TraverseList method5:"); traverseList.stream().forEach(str->{ System.out.print(str); }); System.out.println(); } /** * ********************************************* * 以下為java常規遍歷List的方式 * 1.優先選擇foreach * 2.遍歷List的同時要移除元素推薦使用iterator */ @Test public void test4(){ System.out.print("TraverseList method4:"); Iterator<String> iterator = traverseList.iterator(); while (iterator.hasNext()){ System.out.print(iterator.next()); } System.out.println(); } @Test public void test3() { System.out.print("TraverseList method3:"); for (Iterator<String> iterator = traverseList.iterator();iterator.hasNext();) { System.out.print(iterator.next()); } System.out.println(); } @Test public void test2() { System.out.print("TraverseList method2:"); for (String str:traverseList) { System.out.print(str); } System.out.println(); } @Test public void test1() { System.out.print("TraverseList method1:"); for (int i = 0; i < traverseList.size(); i++) { System.out.print(traverseList.get(i)); } System.out.println(); } }
以上測試代碼執行結果如下: