1.Collection & Map 的主要实现类
2.迭代器Iterator
3.Iterator执行原理
4.代码
/* 集合的遍历 : 使用迭代器Iterator 内部方法 : hasNext() :如果有下一个元素, 就返回true next() :返回下一个元素 */ Collection collection = new ArrayList(); ((ArrayList) collection).add(123); ((ArrayList) collection).add("ABC"); ((ArrayList) collection).add(false); ((ArrayList) collection).add(4546); ((ArrayList) collection).add("DEF"); Iterator iterator = collection.iterator(); //方式一 : for (不推荐) for (int i=0;i < collection.size() ; i++){ System.out.println(iterator.next()); } //方式二: while (推荐) while(iterator.hasNext()){ System.out.println(iterator.next()); } //两种错误的遍历方式 //方式一 : Iterator iterator1 = collection.iterator(); while (iterator1.next()!=null){ System.out.println(iterator.next()); } //这种写法会导致跳着输出,且报异常 //方式二: while (collection.iterator().hasNext()){ System.out.println(collection.iterator().next()); } //这种写法会导致重复输出第一个元素 //remove() 注意 : 如果还没有调用next()或者刚调完remove(),就调用remove(), 会报IllegalStateException; Iterator iterator2 = collection.iterator(); while (iterator2.hasNext()){ Object next = iterator2.next(); if ("ABC".equals(next)){ iterator2.remove(); } } System.out.println(collection); //如果执行完一次遍历后 , 再遍历需要重新创建Iterator
5.Foreach遍历集合
Collection collection = new ArrayList(); ((ArrayList) collection).add(123); ((ArrayList) collection).add("ABC"); ((ArrayList) collection).add(false); ((ArrayList) collection).add(4546); ((ArrayList) collection).add("DEF"); //foreach遍历 : 底层调用的还是Iterator for (Object o : collection) { System.out.println(o); }
6.Collections : 集合工具类