迭代器的定义
迭代器是一种用于遍历集合元素的对象。它提供了统一的方式来访问各种集合类 型(如列表、映射、集合等)中的元素,而不需要了解集合的内部结构。
在 Scala 中,迭代器是一种抽象的概念,它有特定的接口和方法来实现元素的遍历。
package it
/*
迭代器
*/
object it01 {
def main(args: Array[String]): Unit = {
val list1 = List(1, 2, 3, 4, 5) // 修正:list1 应为小写开头
// 1. 使用 foreach 遍历列表
list1.foreach(ele => println(ele))
// 2. 获取迭代器
val iterator = list1.iterator
// 3. 使用 while 循环和迭代器遍历
// hasNext() 检查是否有下一个元素
// next() 获取下一个元素
while (iterator.hasNext) {
println(iterator.next())
}
}
}
迭代器
-
- next() 获取下一个元素,移动迭代器的位置。如果没有下一个,就报错
-
- hasNext 判断当前是否存在下一个元素:返回 false 或 true */
package it
/* 迭代器 */
/*
* 1. next() 获取下一个元素,移动迭代器的位置。如果没有下一个,就报错
* 2. hasNext 判断当前是否存在下一个元素:返回 false 或 true
*/
object it02 {
def main(args: Array[String]): Unit = {
val it = List(1, 2, 3, 4, 5).iterator
// 取出前4个元素
println(it.next()) // 1
println(it.next()) // 2
println(it.next()) // 3
println(it.next()) // 4
println(it.next())
println(it.hasNext) // 再次检查是否还有下一个元素
// 第6次使用next(),会报错!!!
println(it.next())
}
}
迭代器
-
- next() 获取下一个,移动迭代器的位置。如果没有下一个,就报错
-
- hasNext判断当前是否存在下一个元素:false, true
-
- drop() 跳过指定数量的元素,返回一个新的迭代器
-
- take() 获取指定数量的元素,返回一个新的迭代器
object it03 {
def main(args: Array[String]): Unit = {
// 示例1: drop() 方法
val it1 = List(1, 2, 3, 4, 5).iterator
// 跳过前两个元素
val it2 = it1.drop(2)
println("使用 drop(2) 后的元素:")
while (it2.hasNext) {
println(it2.next()) // 输出: 3, 4, 5
}
println("\n" + "=" * 30 + "\n")
// 示例2: take() 方法
val it3 = List(1, 2, 3, 4, 5).iterator
// 先消耗前两个元素
it3.next() // 1
it3.next() // 2
// 获取接下来2个元素
val it4 = it3.take(2) // 获取指定数量的元素;返回一个新的迭代器
println("使用 take(2) 后的元素:")
while (it4.hasNext) {
println(it4.next()) // 输出: 3, 4
}
// 注意:it3 现在只剩下元素 5
println("\n原迭代器 it3 剩余的元素:")
println(it3.hasNext) // true,因为还有元素5
if (it3.hasNext) {
println(it3.next()) // 5
}
}
}