1. 程式人生 > >Java學習筆記36:迭代器遍歷(for 、while)

Java學習筆記36:迭代器遍歷(for 、while)

while迴圈遍歷

Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
Iterator it = coll.iterator();
while(it.hasNext()){
    System.out.println(it.next());

}
for迴圈遍歷

Collection coll = new ArrayList();
coll.add("abc1");
coll.add("abc2");
coll.add("abc3");
coll.add("abc4");
for(Iterator it = coll.iterator(); it.hasNext(); ){
    System.out.println(it.next());

}
注意:開發中建議使用for迴圈實現迭代,因為while迴圈中,it是在while迴圈體外建立的,因此while迴圈結束後,it仍然在記憶體中佔據著一定的空間。而使用for迴圈,在迴圈結束後,it的生命週期也會隨之結束。

Student S語句向下轉型,因為Obj無法獲取子類 在這裡插入圖片描述

java的迭代器的使用方法
參考:https://blog.csdn.net/weixin_41547486/article/details/79594413

Java:使用Iterator迭代器遍歷集合資料
https://blog.csdn.net/xuehyunyu/article/details/77461390

迭代器(Iterator)遍歷的兩種方法(for和while)


https://blog.csdn.net/jamie_byr/article/details/79781432

-----------------------java的迭代器-----------------------------------

集合的遍歷:

遍歷方法:
Iterator iterator()
返回在此 collection 的元素上進行迭代的迭代器。

在這裡插入圖片描述

java.util
介面 Iterator
所有已知子介面:

ListIterator, XMLEventReader

所有已知實現類:

BeanContextSupport.BCSIterator, EventReaderDelegate, Scanner

public interface Iterator
對 collection 進行迭代的迭代器。迭代器取代了 JavaCollections Framework 中的 Enumeration。迭代器與列舉有兩點不同:

迭代器允許呼叫者利用定義良好的語義在迭代期間從迭代器所指向的 collection 移除元素。
方法名稱得到了改進。
此介面是 JavaCollections Framework 的成員。

方法摘要

boolean

hasNext()
如果仍有元素可以迭代,則返回 true。

E

next()
返回迭代的下一個元素。

void

remove()
從迭代器指向的 collection 中移除迭代器返回的最後一個元素(可選操作)。

例子:

publicclassCollectionTest5 {

publicstaticvoidmain(String[] args) {

  //建立一個集合

  Collection coll = new ArrayList();

  for (inti = 0; i < 10; i++) {

    coll.add("張三" + i);

  }

 

  //建立集合的迭代器,這個迭代器只能給Coll這個集合來使用

  Iterator iter = coll.iterator();

  while(iter.hasNext()){

    //Object obj= iter.next();

    //shift + Alt+ R 可以一起修改同名的變數

    String str =(String)iter.next();

    System.out.println(str);

  }

  //迭代器只能使用一次,再次使用false

// boolean isHasNext = iter.hasNext();

// System.out.println(isHasNext);

// iter.next();

  //如果要再遍歷一次集合,需要再次建立一個迭代器

  Iterator iter1 = coll.iterator();

  while(iter1.hasNext()){

    //Object obj= iter.next();

    //shift + Alt+ R 可以一起修改同名的變數

    String str =(String)iter1.next();


     //迭代器在遍歷的時候,這個集合不能做任何操作

     //if("張三3".equals(str))

       //coll.add("李四");

    System.out.println(str);

  }

}

}

結果:

張三0

張三1

張三2

張三3

張三4

張三5

張三6

張三7

張三8

張三9

張三0

張三1

張三2

張三3

張三4

張三5

張三6

張三7

張三8

張三9