迭代器
1.是一种用于遍历集合元素的对象。它提供了统一的方式来访问各种集合类 型(如列表、映射、集合等)中的元素,而不需要了解集合的内部结构。
2.在 Scala 中,迭代器是一种抽象的概念,它有特定的接口和方法来实现元素的遍历。
eg:
package itertor
/*
List(1,2,3,4,5)
*/
object itertor01 {
def main(args: Array[String]): Unit = {
val list = scala.collection.immutable.List(1,2,3,4,5)
list1.foreach(ele => {
println(ele)
})
//跳过list的前面两个元素,而输出随后的两个元素
val it = list.iterator
val it1 = it.drop(2).take(2)
while(it1.hasNext){ //3 4
println(it1.next())
}
}
}
1.迭代器 Itertor
专门用来遍历(挨个访问)集合元素
1.获取。每个集合都有一个迭代器对象。用它来遍历集合
2.迭代器next()有两个元素。一个是获取当前元素,一个是移动迭代器
Set Map List
object itertor02 {
/*
迭代器 Itertor
专门用来遍历(挨个访问)集合元素
1.获取。每个集合都有一个迭代器对象。用它来遍历集合
2.迭代器next()有两个元素。一个是获取当前元素,一个是移动迭代器
Set Map List
*/
def main(args: Array[String]): Unit ={
val set1 = Set(1,2,3,4,5)
//访问这五个元素
//1.获取迭代器
val it = set1.iterator
//输出当前的元素
println(it.next())//获取,移动
println(it.next())
println(it.next())
println(it.next())
println(it.next())
//2.移动迭代器
//3.输出当前元素
}
}
2.子迭代器
package itertor
object itertor03 {
//drop() 跳过元素
//take() 获取元素
//duplicate() 复制迭代器,迭代是一次性的,next之后,就不能再回头
def main(args: Array[String]): Unit ={
val list1 = List(1,2,3,4,5)
val it = list1.iterator
val it2 = it.take(3) //从当前位置开始,只获取两个元素
while(it2.hasNext){
println(it2.next())
}
// val it2 = it.drop(1)//跳过一个元素
//
// while(it2.hasNext){
// println(it2.next())
// }
}
}
3.toList
把迭代器中剩余的元素转入一个新的list中
eg:
package itertor
object itertor05 {
/*
toList 把迭代器中剩余的元素转入一个新的list中
*/
def main(args: Array[String]): Unit ={
val list1 = List(1,2,3,4,5)
val it = list1.iterator
it.next()//1
it.next()//2
println(it.next())//3,由List(1,2,3,4,5)里的数字顺着往下填充
//希望把剩下的内容,装入一个新的List
val newList = it.toList
println(newList)
}
}
4.zip
两个迭代器的元素按照顺序组合成一个新的迭代器。长度不一,会以短的为准
package itertor
object itertor06 {
/*
toList 把迭代器中剩余的元素转入一个新的list中
zip:两个迭代器的元素按照顺序组合成一个新的迭代器。长度不一,会以短的为准
*/
def main(args: Array[String]): Unit ={
val it1 = List(1,2,3,4,5,6).iterator
val it2 = List("one","two", "three", "four", "five").iterator
val it3 = it1.zip(it2)
while(it3.hasNext){
val pair = it3.next()
println(pair._1, pair._2)
}
}
}