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)
    }
  }
}
相关推荐
天若有情67317 小时前
程序员原创|借鉴JS事件冒泡,根治电脑文件混乱的“冒泡整理法”
开发语言·javascript·windows·ecmascript·电脑·办公·日常
特种加菲猫18 小时前
继承,一场跨越时空的对话
开发语言·c++
小码哥_常18 小时前
告别MySQL!大厂集体转投PostgreSQL,到底藏着什么玄机?
后端
玩转单片机与嵌入式19 小时前
玩转边缘AI(TInyML):需要掌握的C++知识汇总!
开发语言·c++·人工智能
茉莉玫瑰花茶19 小时前
Qt 信号与槽 [ 1 ]
开发语言·数据库·qt
刀法如飞19 小时前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
AI人工智能+电脑小能手20 小时前
【大白话说Java面试题】【Java基础篇】第30题:JDK动态代理和CGLIB动态代理有什么区别
java·开发语言·后端·面试·代理模式
swipe20 小时前
别再把 AI 聊天做成纯文本:从 agui 这个前后端项目,拆解“可感知工具调用”的流式 AI UI
后端·langchain·llm
GetcharZp20 小时前
GitHub 爆火!纯 Go 编写的文件同步神器 Syncthing,凭什么成为程序员的标配?
后端