高贵的hasNext带着“迭代器”袭击你的大脑

迭代器

ini 复制代码
package listANDcaseclass

object hasNext1 {
  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,3,4,5)
    val set = Set(2,4,5,3,9)
    list1.foreach((ele => println(ele)))
    set.foreach(ele => Set)

    val iterator = list1.iterator
    // hasNext 加 next 更新
    while (iterator.hasNext){
      println(iterator.next())
    }
  }
}

什么是迭代器?

迭代器:

1.next() 获取下一个,移动迭代器的位置。如果没有下一个就会报错

2.hasNext 判断当前是否存在下一个元素:false,true

scss 复制代码
package listANDcaseclass

object hasNext2 {
  def main(args: Array[String]): Unit = {
    val it = List(1,2,3,4,5).iterator
    println(it.next())
    println(it.next())
    println(it.next())
    println(it.next())
    println(it.next())
    println(it.next())

    println(it.hasNext)//当前是否还有下一个元素
    println(it.next())//第六次使用next,就会因没有下一个元素报错!
  }
}

迭代器:

3.drop() 跳过指定数量的元素,返回一个新的迭代器

注意:迭代器只能使用一次,多次使用容易出现错误!

kotlin 复制代码
package listANDcaseclass

object hasNext3 {
  def main(args: Array[String]): Unit = {
    val it1 = List(1,2,3,4,5).iterator
    // 跳过前两个元素
    val it2 = it1.drop(2)
    while (it2.hasNext){println(it2.next())}
  }
}

迭代器:

4.take() 获取指定数量的元素,返回一个新的元素的迭代器

scss 复制代码
package listANDcaseclass

object hasNext4 {
  def main(args: Array[String]): Unit = {
    val it1 = List(1,2,3,4,5).iterator
    it1.next()
    it1.next()
    val it2 = it1.take(2)
    while(it2.hasNext){println(it2.next())}
  }
}
相关推荐
Thomas21433 天前
Java scala 数组 链表
java·链表·scala
江畔柳前堤4 天前
消息队列:从直觉到精通的完整认知地图
开发语言·人工智能·算法·机器学习·ruby on rails·scala
hopsky18 天前
《Scala 学习手册》核心内容详解
人工智能·学习·scala
abcy0712131 个月前
scala playframework 搭建与新建controller教程
scala
lpfasd1231 个月前
编程语言榜单变迁分析
开发语言·后端·scala
戮漠summer2 个月前
Missing Semester 计算机教育中缺失的一课 Lecture 01 Shell
开发语言·后端·scala
醉熏的石头2 个月前
Ubuntu 中的编程语言(中)
linux·ubuntu·scala
Irene19912 个月前
Scala、Java、Python、JavaScript 的核心特性和应用场景(Python 的“单机“局限性:GIL 机制导致的多核并行缺陷)
java·javascript·python·scala
李白的天不白3 个月前
确认 Nginx 配置文件是否真的生效
scala
醉颜凉3 个月前
Scala自定义Monad实战:从理论到应用的完整指南
大数据·算法·scala