Scala的迭代器

复制代码
package Scala4
//迭代器
object hd {
  def main(args: Array[String]): Unit = {
    var li1 = List(1, 2, 3, 4, 5, 6)
    //依次输出List的元素
    //1.循环
    //li1.foreach(println)
    //2.迭代器
    //2.1创建一个迭代器(iterator)
    //    val it1=li1.iterator.take(3)//.take(3)只取到前三个数
    val it1 = li1.iterator.drop(3) //.drop(3)去掉前三个数
    //2.2访问每个元素
    while (it1.hasNext) {
      println(it1.next())



      val map1=Map("湘"->"湖南省","川"->"四川省")

      val it2=map1.iterator
      while(it2.hasNext){
        println(it2.next())
      }
    }
  }
}
复制代码
package Scala4

object hds {
  def main(args: Array[String]): Unit = {
//    val li1 = List(1, 2, 3,4,5,6)
//    val it1 = li1.iterator//创建一个迭代器
    //1.常用方法 next
    //    println(it1.next())//作用:获取当前元素+移动迭代器
    //    println(it1.next())//作用:获取当前元素+移动迭代器
    //    println(it1.next())//作用:获取当前元素+移动迭代器
    //
    //    println(it1.hasNext)

    //2.复制迭代器 duplicate
//    val (it2, it3) = it1.duplicate
//
//    while (it2.hasNext) {
//      println(it2.next())
//    }
//    while (it3.hasNext) {
//      println(it3.next())
//    }

    //3.toList把剩余的元素转成列表
//    it1.next()//移动一次迭代器
//    it1.next()//移动一次迭代器
//    val l2=it1.toList//把剩余的元素转成列表
//    println(l2)
    //4 子迭代器
    // drop 会跳过指定数量的元素,返回一个新的迭代器
    //take 只处理当前开始的,指定数量的元素,返回一个新的迭代器

//    val it2=it1.drop(3)
//    val it3=it1.take(3)
//    while (it3.hasNext){
//      println(it3.next())
//    }
    //只输出3,4,5要怎么做?
//    val it5=it1.drop(2).take(3)
//    while (it5.hasNext){
//      println(it5.next())
//    }
    //5.zip:拉链
    val it1=List("1","2","3").iterator
    val it2=List("one","two","three","four").iterator

    val it3=it1.zip(it2)
    while(it3.hasNext){
      val rs=it3.next()
      println(rs._1,"->",rs._2)
    }
  }
}
相关推荐
AAA修煤气灶刘哥11 分钟前
别让Redis「歪脖子」!一次搞定数据倾斜与请求倾斜的捉妖记
redis·分布式·后端
AAA修煤气灶刘哥25 分钟前
后端人速藏!数据库PD建模避坑指南
数据库·后端·mysql
你的人类朋友1 小时前
什么是API签名?
前端·后端·安全
昵称为空C3 小时前
SpringBoot3 http接口调用新方式RestClient + @HttpExchange像使用Feign一样调用
spring boot·后端
架构师沉默3 小时前
设计多租户 SaaS 系统,如何做到数据隔离 & 资源配额?
java·后端·架构
RoyLin4 小时前
TypeScript设计模式:适配器模式
前端·后端·node.js
该用户已不存在4 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
Moonbit4 小时前
MoonBit 正式加入 WebAssembly Component Model 官方文档 !
前端·后端·编程语言
Goland猫4 小时前
电商架构图
后端
Java中文社群4 小时前
重要:Java25正式发布(长期支持版)!
java·后端·面试