(一)迭代器的定义
迭代器是一种用于遍历集合元素的对象。它提供了统一的方式来访问各种集合类 型(如列表、映射、集合等)中的元素,而不需要了解集合的内部结构。
在 Scala 中,迭代器是一种抽象的概念,它有特定的接口和方法来实现元素的遍历。
package iterator
case object iterator01 {
def main(args: Array[String]): Unit = {
val list = List(1, 2, 3, 4, 5)
//如何依次输出这5个元素
list.foreach(ele => println(ele))
//问:如何只输出3,4
val it = list.iterator.drop(2).take(2)
while(it.hasNext){
println(it.next() )
}
}
}
(二)迭代器的基本使用
(1) iterator方法创建对应的迭代器。这个迭代器可以用于遍历列表中的元素。
(2) hasNext方法检查是否还有下一个元素。
(3) next方法获取一个元素
object caseClass02 {
/*
* case class
* 样例类,相比与普通的类,它有三点不同
* 1.在创建对象时,可以省略new
* 2.默认情况下,属性都是只读的
*/
case class Stu(name:String,age:Int)
def main(args:Array[String]): Unit ={
val stu1 = Stu("小花",18)
// 2默认情况下,属性都是只读的
// stu1.age = 19
// stu1.name = "xxx"
val stu2 = Stu("小花",18)
println(stu1)
println(stu1 == stu2)
val set1 = Set(stu1,stu2)
println(set1)
}
}
package iterator
object iterator022 {
/*
*1. next() 获取当前的元素,移动一次迭代器
* 2 hasNext 判断是否有下一个元素
* 3. drop(n) 从当前位置开始,跳过n个元素,它返回一个新的迭代器
* 4.take(n) 从当前位置开始,获取n个元素,它返回一个新的迭代器
* 5.dupli 复制迭代器
* 6.toList 把迭代器中剩余的元素放在一个新的List中
* 7. zip 把两个迭代器合并成一个新的迭代器,可以同步移动这两个迭代器,并且以短的为准
*/
def main(args:Array[String]): Unit ={
// val it = List(1,2,3,4,5).iterator
// it.next()
// it.next()
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)
}
}
}