叠代器--遍歷集合的專用工具
阿新 • • 發佈:2018-02-16
toa family 叠代器 util lec gpo 返回 邏輯 arr
【不使用叠代器遍歷集合】
1 package com.hxl; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Collection; 6 7 public class Test { 8 9 public static void main(String[] args) { 10 // 實例化一個集合對象 11 Collection c = new ArrayList<>(); 12 // 添加元素 13 c.add(newStudent("aa", 11, ‘男‘)); 14 c.add(new Student("bb", 22, ‘男‘)); 15 c.add(new Student("cc", 33, ‘女‘)); 16 c.add(new Student("dd", 44, ‘男‘)); 17 c.add(new Student("ee", 55, ‘女‘)); 18 // 將集合轉為Object[]數組 19 Object[] objs = c.toArray(); 20 // 遍歷數組 21 for(int i = 0; i < objs.length; i++) { 22 // 這裏Student類中的toString()方法已經重寫過了 23 System.out.println(objs[i]); 24 } 25 } 26 }
【使用叠代器Iterator】
1 package com.hxl; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Collection; 6 importjava.util.Iterator; 7 8 public class Test { 9 10 public static void main(String[] args) { 11 // 實例化一個集合對象 12 Collection c = new ArrayList<>(); 13 // 添加元素 14 c.add(new Student("aa", 11, ‘男‘)); 15 c.add(new Student("bb", 22, ‘男‘)); 16 c.add(new Student("cc", 33, ‘女‘)); 17 c.add(new Student("dd", 44, ‘男‘)); 18 c.add(new Student("ee", 55, ‘女‘)); 19 // 使用叠代器有兩種方法,方法一:while循環遍歷,優點邏輯結構清晰 20 // 實例化叠代器Iterator對象,註意Iterator是接口,這裏是其實現類的對象. 21 Iterator it = c.iterator(); 22 while (it.hasNext()) { 23 // it.next()方法返回的是Object對象,而它其實是Student對象,並且重寫了toString方法。 24 System.out.println(it.next()); 25 } 26 27 // 方法二:for循環遍歷叠代器,優點節省內存空間,缺點邏輯結構不那麽清晰 28 /* 29 for (Iterator it = c.iterator(); it.hasNext();不需要寫表達式) { 30 System.out.println(it.next()); 31 } 32 */ 33 } 34 }
叠代器--遍歷集合的專用工具