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)
    }
  }
}
相关推荐
步行cgn18 分钟前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端
lv__pf19 分钟前
seata【实战 msb】
java·开发语言·后端
点纭20 分钟前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#
Ricon组态薄荷糖20 分钟前
Ricon组态系统:工业组件开发指南与实践
前端·后端·物联网
旺仔不是程序员22 分钟前
相关子查询与性能优化:PostgreSQL 逐行执行的代价与 JOIN 重写
数据库·后端·sql
右耳朵猫AI26 分钟前
PHP周刊2026W38 | Laravel AI可观测、Symfony三版本、Webhook零信任、事件溯源架构
后端·php·laravel
沙蒿同学36 分钟前
我把架构约定编译成了会变红的测试:Wails v2 + Go + Vue3 桌面脚手架实战
前端·后端·github
量化分析码农38 分钟前
【Python量化数据工程实战 #01】拉下来的行情全是"脏数据"?停牌、跳空、异常值一站式清洗
后端
专业程序开发源39 分钟前
springboot篮球联赛管理系统13635-计算机课程设计、毕业设计
vue.js·spring boot·后端·python·django·php·课程设计
事已至此先睡覺吧1 小时前
第三篇:Java 流程控制详解:条件判断、循环与跳转语句
java·开发语言