list

8 阅读1分钟

iterator

  • 1.next() 获取当前的元素,移动一次迭代器
  • 2.使用while循环,hasNest 判断有没有下一个元素?
  • 3.drop(n) 从当前位置开始,跳过 n个 元素,它返回一个新的迭代器
  • 4.take(n) 从当前位置开始,获取 n个 元素,它返回一个新的迭代器
  • 5.duplicate 复制迭代器
  • 6.toList 把迭代器中剩余的元素放在一个新的List中
  • 7.zip 把两个迭代器合并成一个新的迭代器,可以同步移动这个两个迭代器,并且以短的为准
def main(args: Array[String]): Unit = {
    val list = List(1,2,3,4,5)
//    如何依次输入这个5个元素
    list.foreach(ele => println(ele))
drop(n) take(n)
//如何只输出:3,4
    val it = list.iterator.drop(2).take(2)
    while (it.hasNext){
      println(it.next())
hasNest
def main(args: Array[String]): Unit = {
//    获取一个迭代器
    val it = List(1, 2, 3, 4).iterator

    println(it.next())
    println(it.next())
    println(it.next())
    println(it.next())

    println(it.next())

    val it1 = it.drop(2)

  while (it1.hasNext){
    println(it1.next())
  }
//    println(it.hasNext)
  }
take()
def main(args: Array[String]): Unit = {
  val it = List(1, 2, 3, 4,5,6,7,8,9).iterator
  val it1 = it.drop(2).take(4)

while (it1.hasNext){
  println(it1.next())
  }
}
duplicate
def main(args: Array[String]): Unit = {
  val it = List(1, 2, 3, 4,5,6,7,8,9).iterator
  val (it1,it2) = it.duplicate
  val it3 = it1.take(3)
while (it3.hasNext){
  println(it3.next())
  }

  println("---------------------")
  while(it2.hasNext){
    println(it2.next())
  }
}
toList
val it = List(1, 2, 3, 4,5,6,7,8,9).iterator
it.next()
it.next()

val list1 = it.toList
println(list1)
zip
val it1 = List(1,2,3,4,5,6).iterator

val it2= List("one","two","three","four","five").iterator

val it3 = it1.zip(it2)

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