迭代器 iterator
有很多元素,提供统一方式访问这些元素。
1. 获取迭代器。
2. hasNext判断是否结束。
3. next获取当前元素,并移动迭代器。
package iterator
object iterator01 {
def main(args: Array[String]): Unit = {
val list=List(1,2,3,4,5)
list.foreach(ele => println(ele))
val it =list.iterator.drop(2).take(2)
while (it.hasNext){
println(it.next())
}
}
}
1. next(): 获取当前迭代器,移动一位迭代器
2. hasNext(): 判断是否有下一个元素
3. drop(n): 从当前位置开始,跳过n个元素,它返回一个新的迭代器
4. take(n): 从当前位置开始,获取n个元素,它返回一个新的迭代器
5·duplicate 复制迭代器
package iterator
object iterator02 {
def main(args: Array[String]): Unit = {
val it = List(1,2,3 ,4,5,6,7,8,9,10).iterator
val(it1,it2)=it.duplicate
val it3 =it1.take(3)
while (it3.hasNext){
println(it3.next())
}
println("----------------------")
while (it2.hasNext){
print(it2.next())
}
}
}
6·toList():将迭代器转换为列表
7·zip():将两个迭代器的元素按顺序配对为元组
package iterator
object iterator03 {
def main(args: Array[String]): Unit = {
val it = List(1,2,3,4,5).iterator
it.next()
it.next()
val list = it.toList
println(list)
val it1 = List(1,2,3,4,5).iterator
val it2 = List("one", "two", "three", "four", "five").iterator
val it3 = it1.zip(it2)
while(it3.hasNext) {
val rs = it3.next()
println(rs._1, rs._2)
}
}
}