Iterator(迭代器)、增強for迴圈
二、Iterator介面 三、Iterator的實現過程 四、迭代器的併發修改異常 五、增強的for迴圈 一、迭代器(Iterator)介紹 在java裡面有一個介面:Iterator。 java裡面有很多集合,每種集合元素儲存的方式不一樣,取的方式可能也不一樣。每一個都學習怎麼獲取很不現實,這時候就出現了迭代器,把所有的集合都搞成同樣的方式獲取。迭代器的好處就是,遮蔽掉了各種集合的不同。 Collection集合元素的通用獲取方式:取元素之前首先判斷集合中有沒有元素,如果有,就把元素取出來,如果還有,就繼續取出,直到取完。這種取出方式的專業術語就叫迭代。(說白了,就是遍歷) 迭代器:獲取集合中元素的一種方式。 二、Iterator介面 共有三個抽象方法,我們學習兩個: 1. boolean hasNext() //如果仍有元素可以迭代,則返回 true。 2. E next() //獲取下一個元素。 因為Iterator是介面,所以應該找他的實現類。 介面Colletion中的iterator()方法,返回的就是在此 collection 的元素上進行迭代的迭代器。 ArrayList是Collection的實現類,重寫了iterator物件,返回的是Iterator介面的實現類的物件。 所以通過ArrayList的物件呼叫iterator()方法,方法的執行結果就是Iterator介面的實現類的物件。可以通過多型的方式接收一下。 這就是面向介面的程式設計。 例1:Iterator的使用
例2:Collection<String>中的<String>可以不寫,這時集合什麼都可以存。如果不寫,Iterator<String>中的<String>也不能寫。 //Person.java
//Test.java
執行結果: aaa 三、Iterator的實現過程 當執行coll.iterator();時,會建立一個指標,指向-1的位置。 當執行it.hasNext()時,會判斷指標指的位置有沒有下一個元素。 當執行it.next()時,首先把下一個元素取出來,然後指標往後移動一位。只有執行next()時,指標才往後移動。
四、迭代器的併發修改異常 在使用迭代器進行遍歷的時候,不允許修改集合的長度。否則會報:java.util.ConcurrentModificationException。不改長度是指不能進行增刪元素的操作,但是可以改元素。 例:對集合元素進行遍歷,當發現元素是"bbb"時,新增元素"eee"。下面的程式會報錯。
增強的for迴圈是jdk1.5新特性。 jdk1.5之後,出現了新的介面java.lang.Iterable,Collection開始繼承Iterable。而Iterable接口出現目的就是為了實現增強的for迴圈。 凡是見到的集合,還有陣列,都可以使用增強for迴圈。 格式: for(資料型別 變數名: 陣列或集合){ sop(變數); } 好處:程式碼少 壞處:只能做遍歷用。沒有索引,不能操作容器裡面的數。 例1:增強for迴圈使用
|
相關推薦
Iterator(迭代器)、增強for迴圈
二、Iterator介面 三、Iterator的實現過程 四、迭代器的併發修改異常 五、增強的for迴圈 一、迭代器(It
scala陣列、Scala Collection(集合)、Iterator(迭代器)
一、scala陣列 陣列:用來儲存固定大小的同類型元素,通過索引來訪問指定元素,索引index從0開始 宣告陣列 定義陣列--語法格式: var z:Array[String] = new Array[String](3) 或 var z = new Array[St
Iterator(迭代器)的使用
最近使用Hibernate,在多對一對映中需要用到Set<T> 物件,為了把物件中的資料輸出,用到了Iterator物件。 Iterator是一個輕量級(建立代價很小)物件,它可以遍歷序列
C++之iterator(迭代器)學習
迭代器是一種檢查容器內元素並便利元素的資料型別,迭代器可以很大程度上隔離容器底層實現,使用時只需依賴迭代器相對統一的方法/介面。Iterator類的訪問方式就是把不同集合類的訪問邏輯抽象出來,使得不用暴露集合內部的結構而達到迴圈遍歷集合的效果。 1 容器的I
Iterator(迭代器的兩中使用方式for和while)
方式一 for(Iterator<String> it = list.iterator();it.hasNext();){ System.out.println(it.next()); } 方式二 Iterato
Java之集合初探(二)Iterator(叠代器),collections,打包/解包(裝箱拆箱),泛型(Generic),comparable接口
基本 generate 等於 框架 ring bin list() each 是否 Iterator(叠代器) 所有實現了Collection接口的容器都有一個iterator方法, 用來返回一個實現了Iterator接口的對象 Iterator對象稱作叠代器, 用來
Iterator(叠代器) 和generator
Oz http con code lan bubuko efi ati key 數組是可叠代的 var a = []; console.dir(a); 發現這裏有一個Symbol.iterator ,說明它是可叠代的。 object 是不可以叠代的 var a =
python初學一(迭代器)
一、迭代器的基本知識: 1、迭代器的建立: (1)系統函式iter() &nb
設計模式是什麼鬼(迭代器)講得形象化,圖形加助理解和記憶
文章出處:https://www.javazhiyin.com/tag/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F 作者:凸凹裡歐 方法迭代:代的更迭,從初代到末代的遍歷,指對某類集合中的每個元素按順序取出
1021 個位數統計 (15 分)(迭代器)
1021 個位數統計 (15 分) 給定一個 k 位整數 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),請編寫程
1021 個位數統計 (15 分)(迭代器)
1021 個位數統計 (15 分) 給定一個 k 位整數 N=dk−110k−1+⋯+d1101+d0 (0≤di≤9, i=0,⋯,k−1, dk−1>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定 N=100
學習筆記 c++ (迭代器)
迭代器 迭代器是演算法和容器的橋樑 迭代器用作訪問容器中的元素 演算法不直接操作容器中的資料,而是通過迭代器間接操作 演算法和容器獨立 增加新的演算法,無需影響容器的實現 增加新的容器,原有的演算法也能適用 輸入流迭代器和輸出流迭代器 輸入流迭代
設計模式(迭代器)
1 迭代模式 1.1能順序訪問聚合(一群物件)中的各個元素,而又不暴露其內部的表示 1.2 類圖 下面通過展現一個例子說明迭代模式,早餐選單的選單項是一個ArrayList型別,而午餐選單的選單項是一個數組型別,如果要遍歷他們,就得通過封裝遍歷。
python學習筆記10(迭代器)
可迭代物件與迭代器 可迭代物件: 可以直接作用於for迴圈的物件統稱為可迭代物件(Iterable)。可以用isinstance()去判斷一個物件是否是Iterable物件 可以直接作用於for迴圈的資料型別一般分兩種 1、集合資料型別,如list、tuple、dict、set、st
17 python 初學(迭代器)
生成器都是迭代器,迭代器不一定是生成器 迭代器滿足兩個條件: 1. 有iter方法 2. 有next方法 # list, tuple, dict, string: iterable(他們都有iter方法,所以都是可迭代物件) # 呼叫 iter 方法返回的 d 就是一個迭代器 # l
python學習(迭代器)簡單題目
迭代器練習題 Problem 1: Write an iterator class reverse_iter, that takes a list and iterates it from the reverse direction. 寫一個迭代器reverse_iter
(Java)集合框架(一)Collection介面方法、Iterator迭代器、增強for迴圈
【Collection介面】 import java.util.ArrayList; import java.util.Collection; /* * Collection介面中的方法 是集合中所有實現類必須擁有的方法 * 程式演示,使用Collection
集合、Iterator迭代器、增強for迴圈、泛型、List介面、Set介面
1、集合: 集合是java中提供的一種容器,可以用來儲存多個數據。 集合和陣列的區別:陣列的長度是固定的。集合的長度是可變的。集合中儲存的元素必須是引用型別資料 (1)ArrayList 集合儲存元素並遍歷 練習一:ArrayList集合儲存5個int型別元素 import java.util.Array
Python 之 雜談(迭代器iter)、偏函式
1、 l = [1,2,3,'b',5,6] def func(): return l.pop() x = iter(func,'b') print(x.__next__()) print(x.__next__()) print(x.__next__()) 執行結果: 遇到“b
設計模式(一):Iterator模式(迭代器模式)
Iterator模式(迭代器模式) 迭代器模式 需求 實現 修改後 迭代器模式 需求 一個實體類Book,一個Book的集合類 BookList,BookList提供遍歷方法。 實現 Book類