迭代器 iterator
集合,有很多的元素,提供一个统一的方式来访问这些元素。
- 获取迭代器。
- hasNext 判断是否结束
- next 获取当前元素,并移动迭代器
object iterator01 {
def main(args: Array[String]): Unit = {
val set = Set()
//set.iterator
//val list = List(1, 2, 3, 4, 5)
//如何依次输出这个5个元素?
//list.foreach(ele => println(ele))
//问: 如何只输出: 3,4
//1. 获取迭代器
//val it = list.iterator.drop(2).take(2)
val it = Set(10,2,1,0,-1).iterator //.drop(2).take(2)
//2. 使用while循环,hasNext 判断有下一个元素?
while(it.hasNext){
println(it.next()) // next() 获取当前的元素,并且向后移动一次迭代器
}
}
}
- next() 获取当前的元素,移动一次迭代器
- hasNext 判断是否有下一个元素
- drop(n) 从当前位置开始,跳过n个元素,它返回一个新的迭代器
- crop():从当前位置开始,取出 n 个元素,它返回一个新的迭代器,
- duplicate 是删除元素
object iterator02 {
/**
* 1. next() 获取当前的元素,移动一次迭代器
* 2. hasNext 判断是否有下一个元素
* 3. drop(n) 从当前位置开始,跳过n个元素,它返回一个新的迭代器
* 4. crop():从当前位置开始,取出 n 个元素,它返回一个新的迭代器,
* 5. duplicate 是删除元素
*/
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
// 使用it1访问前三个
val it3 = it1.take(3)
while(it3.hasNext){
println(it3.next())
}
println("---------------------------")
while(it2.hasNext){
println(it2.next())
}
}
}