/** * 遍歷list的方法 * @param args */ public static void main(String[] args) { List list = new ArrayList(); list.add("111"); ...
/** * 遍歷list的方法 * @param args */ public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("111"); list.add("222"); list.add("333"); list.add("222"); list.add("444"); // 1. for迴圈 // 1.1 索引值 i 遞增 // 優點:可以獲取索引值 System.out.println("=======1.for迴圈:1.1 索引值 i 遞增======"); for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } // 1.2 索引值 i 遞減 // 優點:可以獲取索引值;可以刪除元素 System.out.println("=======1.for迴圈:1.2 索引值 i 遞減======"); for (int i = list.size() -1; i >= 0; i--) { System.out.println(list.get(i)); if ("444".equals(list.get(i))) { list.remove(i); } } // 2. 增強for迴圈 // 缺點:不能獲取索引值,也不能刪除元素 System.out.println("=======2.增強for迴圈======"); for (String str : list) { System.out.println(str); } // 3. 迭代器 (原理:生成一個鏈表,鏈表的一個節點保存信息,節點的數據部分保存list的元素地址,通過指針實現鏈表的遍歷,從而實現list的遍歷。) // 優點:可以刪除元素 // 缺點:不可以獲取索引值 System.out.println("=======3.迭代器======"); Iterator<String> itr = list.iterator(); System.out.println("刪除瞭如下的元素:"); while (itr.hasNext()) { // 一次判斷hasNext(),一次next() String str = itr.next(); if ("222".equals(str)) { System.out.println(str); itr.remove(); } } System.out.println("列印list最後剩下的元素:"); Iterator<String> itr2 = list.iterator(); for ( ; itr2.hasNext(); ) { System.out.println(itr2.next()); } }
運行結果:
=======1.for迴圈:1.1 索引值 i 遞增======
111
222
333
222
444
=======1.for迴圈:1.2 索引值 i 遞減======
444
222
333
222
111
=======2.增強for迴圈======
111
222
333
222
=======3.迭代器======
刪除瞭如下的元素:
222
222
列印list最後剩下的元素:
111
333