scala 迭代器 iterator test3

33 阅读3分钟
package iterator
/*
*List(1,2,3,4,5)
 */
object iterator01 {
  def main(args: Array[String]): Unit = {

    val list1 = scala.collection.immutable.List(1,2,3,4,5)
  //  list1.foreach(ele => {
  //        println(ele)
  //)}

    //跳过list的前两个元素 而输出随后的两个元素
    val it = list1.iterator
    val it1 = it.drop(2).take(2)
    //如果有下一个元素
    while(it1.hasNext) {
      //访问下一个元素
      println(it1.next())//3 4
    }
  }
}
package iterator

object iterator02 {
  /*
  *迭代器 Iterator
  * 专门用来遍历(挨个访问)集合元素
  *1.获取 每个集合都有一个迭代器对象 用它遍历集合
  * 2.迭代器.next() 获取当前元素 移动迭代器
  *
   */

  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,3,4,5)
    //访问这五个元素
    //1.获取迭代器
    val it = list1.iterator

    //输出当前元素
    //val value = it.nexe()
    //println(value)
    //println(it.next())//1
    //println(it.next())//2
    //println(it.next())//3
    //println(it.next())//4
    // println(it.next())//5

    if (it.hasNext){
      println(it.next())
    }
  }
}
package iterator

object iterator03 {
  /*
  *迭代器 Iterator
  * 专门用来遍历(挨个访问)集合元素
  *1.获取 每个集合都有一个迭代器对象 用它遍历集合
  * 2.迭代器.next() 获取当前元素 移动迭代器
  *
  * drop:跳过指定个数的元素drop(3)
  * take:获取指定数量的元素
  *
   */

  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,3,4,5)

    val it = list1.iterator
    val it2 = it.take(3) // 从当前位置开始 只获取三个元素

    while (it2.hasNext) {
      println(it2.next())
    }


    //  2.移动迭代器
  //  3.输出当前元素
  }
}
package iterator

object iterator04 {
  /*
  *迭代器 Iterator
  * 专门用来遍历(挨个访问)集合元素
  *1.获取 每个集合都有一个迭代器对象 用它遍历集合
  * 2.迭代器.next() 获取当前元素 移动迭代器
  *
  * drop:跳过指定个数的元素drop(3)
  *
  * take:获取指定数量的元素
  *
  * 迭代器是一次性的 next之后 不能再返回
  * duplicate:复制迭代器
  *
   */

  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,3,4,5)

    val it = list1.iterator

    val (it1,it2) = it.duplicate

    it1.next() //一次性
    it1.next()
    while (it1.hasNext) {
      println(it1.next())
    }
    println("-------------------")
    while  (it2.hasNext) {
      println(it2.next())
    }
  }
}
package iterator

object iterator05 {
  /*
  *迭代器 Iterator
  * 专门用来遍历(挨个访问)集合元素
  *1.获取 每个集合都有一个迭代器对象 用它遍历集合
  * 2.迭代器.next() 获取当前元素 移动迭代器
  *
  * drop:跳过指定个数的元素drop(3)
  *
  * take:获取指定数量的元素
  *
  * 迭代器是一次性的 next之后 不能再返回
  * duplicate:复制迭代器
  *
   */

  def main(args: Array[String]): Unit = {
    val list1 = List(1,2,3,4,5)

    val it = list1.iterator

    val (it1,it2) = it.duplicate

    it1.next() //一次性
    it1.next()

    println(it.next()) //3
    // 把剩余的内容 装入一个新的List
    val newList = it.toList
    println(newList)  //4 5
  }
}
package iterator

object iterator06 {
  /*
  *迭代器 Iterator
  * 专门用来遍历(挨个访问)集合元素
  *1.获取 每个集合都有一个迭代器对象 用它遍历集合
  * 2.迭代器.next() 获取当前元素 移动迭代器
  *
  * drop:跳过指定个数的元素drop(3)
  *
  * take:获取指定数量的元素
  *
  * 迭代器是一次性的 next之后 不能再返回
  * duplicate:复制迭代器
  *
  * toList:将迭代器中剩余的元素转入一个新的list中
  * zip:两个迭代器的元素按照顺序组合成一个新的迭代器 长度不一 会以短的为准
   */

  def main(args: Array[String]): Unit = {
    val it1 = List(1,2,3,4,5).iterator
    val it2 = List("one","two","three","four","five").iterator

    val it3 = it1.zip(it2)

    while (it3.hasNext) {
      val pair = it3.next()
      println(pair._1,pair._2)
    }

  }
}