Java Iterator接口

mac2024-05-28  36

迭代器

 Collection集合中没有索引,不能使用一般的for循环进行遍历。

// 错误写法

for (int i = 0; i < coll.size(); i++) { System.out.println(coll.get(i)); }

 

使用迭代器进行集合遍历

package Iterator; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Iterator; public class DemoMain { public static void main(String[] args) { // 接口 实现类 多态 Collection<String> coll = new ArrayList<>(); coll.add("库里"); coll.add("詹姆斯"); coll.add("詹姆斯"); coll.add("汤普森"); /*for (int i = 0; i < coll.size(); i++) { // 报错 接口中没有get方法 只有子类中有 System.out.println(coll.get(i)); }*/ for(Iterator<String> it = coll.iterator();it.hasNext();){ System.out.println(it.next()); } System.out.println("============="); Iterator<String> it = coll.iterator(); while (it.hasNext()){ System.out.println(it.next()); } } }

实现原理

使用增强for循环(for each)遍历数组和集合

增强for循环必须有被遍历的目标。目标只能是集合或者数组。且仅仅作为遍历操作出现。

package Iterator; import java.util.ArrayList; import java.util.Collection; public class StrongerFor { public static void main(String[] args) { demo1(); System.out.println("========"); demo2(); } private static void demo2() { int[] arr = new int[]{1,2,3,4,5}; for (int i : arr) { System.out.println(i); } } public static void demo1(){ // 多态 Collection<Integer> list = new ArrayList<>(); for (int i = 0; i < 5; i++) { list.add(i); } for (Integer integer : list) { System.out.println(integer); } } }

 

最新回复(0)