1. 程式人生 > >Java集合中叠代器

Java集合中叠代器

arr 時間 如果 odi body public too info 註意事項

叠代器的作用:就是用於抓取集合中的元素。

叠代器的方法:


hasNext() 問是否有元素可遍歷。如果有元素可以遍歷,返回true,否則返回false 。
next() 獲取元素...
remove() 移除叠代器最後一次返回 的元素

NoSuchElementException 沒有元素的異常。
出現的原因: 沒有元素可以被叠代了。。。

技術分享圖片
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {

    public static void main(String[] args) {
        Collection c1=new ArrayList() ;
        c1.add("狗娃");
        c1.add("狗剩");
        c1.add("鐵蛋");
     c1.add("美美"); Iterator it =c1.iterator(); while (it.hasNext()) { System.out.println("元素是:"+it.next()); } } }
技術分享圖片

輸出結果:

元素是:狗娃
元素是:狗剩
元素是:鐵蛋

元素是:美美

技術分享圖片

Q: Iterator()方法返回是一個接口類型,為什麽接口又可以調用方法使用呢?

A: iterator實際上返回的是接口Iterator的實現類。

remove方法:移除叠代器最後一次返回 的元素

技術分享圖片
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Demo01 {

    public static void main(String[] args) {
        Collection c1=new ArrayList() ;
        c1.add("北京");
        c1.add("上海");
        c1.add("廣州");
        Iterator it =c1.iterator();
       
            while(it.hasNext())
             {
                if("北京".equals(it.next()))
                {
                  it.remove();
                }
             }
             System.out.println("移除後:"+c1);
      }
      
      
     
    }
技術分享圖片

輸出結果:移除後:[上海, 廣州]

package cn.itcast.list;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

/*

叠代器在變量元素的時候要註意事項: 在叠代器叠代元素 的過程中,不允許使用集合對象改變集合中的元素 個數,如果需要添加或者刪除只能使用叠代器的方法進行操作。

如果使用過了集合對象改變集合中元素個數那麽就會出現ConcurrentModificationException異常。

叠代元素 的過程中: 叠代器創建到使用結束的時間。

*/

public class Demo5 {

public static void main(String[] args) {
List list = new ArrayList();
list.add("張三");
list.add("李四");
list.add("王五");

ListIterator it = list.listIterator(); //獲取到叠代器
/* while(it.hasNext()){
System.out.print(it.next()+",");
//it.add("aa"); // 把元素添加到當前指針指向位置
list.add("aa"); // add方法是把元素添加到集合的末尾處的。
// list.remove("張三");
}*/

list.add("aa");
it.next();



System.out.println("\r\n集合的元素:"+ list);
}

}

Java集合中叠代器