Iterator(迭代器)、增強for迴圈
阿新 • • 發佈:2020-08-09
Iterator(迭代器)
java.util.Iterator介面:迭代器(對集合進行遍歷)
有兩個常用方法:
boolean hasNext();//判斷集合中是否有下一個元素,有true,無false
E next();//返回迭代後的下一個元素
Iterator迭代器,是一個藉口,我們無法直接使用,需要使用Iterator介面的實現類物件,獲取實現類的方式比較特殊,Collection介面有一個方法,叫
Iterator<E> iterator();
可以返回在此Collection的元素上進行迭代的迭代器
迭代器的使用步驟:
1.使用集合中的方法iterator(),獲取迭代器的實現類,使用Iterator介面接收(多型)
2.使用Iterator介面中的方法hasNext(),判斷是否有下一個元素
3.使用Iterator介面中的方法next(),取出集合的下一個元素
package commonclass; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; public class TestIterator01 { public static void main(String[] args) { Collection<String> arrayList = new ArrayList<>(); arrayList.add("張三"); arrayList.add("李四"); arrayList.add("王五"); arrayList.add("趙六"); arrayList.add("田七"); Iterator<String> iterator = arrayList.iterator(); while (iterator.hasNext()){ System.out.print(iterator.next()+"\t"); } } }
迭代器的實現原理:
增強for迴圈:底層使用的也是迭代器, 使用for迴圈的格式,簡化了迭代器的書寫
是JDK1.5之後出現的新特性
public interface Collection<E> extends Iterable<E>//所有的單列集合都可以使用增強for迴圈
public interface Iterable<T>//實現此介面允許一個物件是“for-each迴圈”語句的目標
增強for迴圈:用來遍歷集合和陣列
格式 :
for(集合/陣列的資料型別 變數名 :集合名/陣列名){
sout(變數名);
}
package commonclass; import java.util.ArrayList; import java.util.Collection; public class TestFor_Each01 { public static void main(String[] args) { int[] arrays = {1,2,3,4,5}; for (int array : arrays) { System.out.print(array+"\t"); } Collection<String> arrayList = new ArrayList<>(); arrayList.add("張三"); arrayList.add("李四"); arrayList.add("王五"); arrayList.add("趙六"); arrayList.add("田七"); for (String s : arrayList) { System.out.print(s+"\t"); } } }