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)
    }
  }
}
相关推荐
CodeSheep8 分钟前
Stack Overflow,轰然倒下了!
前端·后端·程序员
阿珊和她的猫11 分钟前
autofit.js: 自动调整HTML元素大小的JavaScript库
开发语言·javascript·html
GoGeekBaird16 分钟前
GoHumanLoopHub开源上线,开启Agent人际协作新方式
人工智能·后端·github
喜欢吃燃面30 分钟前
C++算法竞赛:位运算
开发语言·c++·学习·算法
草莓熊Lotso34 分钟前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他
谱写秋天41 分钟前
Qt 5.5 的安装与配置(使用 VSCode编辑)
开发语言·vscode·qt
Victor35642 分钟前
Redis(8)如何安装Redis?
后端
项目申报小狂人42 分钟前
算法应用上新!自适应更新策略差分进化算法求解球形多飞行器路径规划问题,附完整MATLAB代码
开发语言·算法·matlab
Victor3561 小时前
Redis(9)如何启动和停止Redis服务?
后端