一.迭代器 iterator
集合,有很多的元素,提供一个统一方式来访问这些元素。
1.获取迭代器
2.hasNext判读是否结束
3.next获取当前元素,并移动迭代器
package iteraator
object iterator01 {
def main(args: Array[String]): Unit = {
//val list = List(1,2,3,4,5)
//如何依次输出这5个元素?
//list.foreach(ele=>println(ele))
// list.foreach(ele => println(ele))
//问:如何只输出:3,4
//val it = list.iterator.drop(2).take(2)
val it =Set(3,10,2,1,0,-1).iterator
while(it.hasNext){
println(it.next())
}
}
}
package iteraator
object iterator02 {
/**
* 1.next()获取当前元素,移动一次迭代器
* 2.hasNext判断是否有下一个元素
* 3.drop(n)从当前位置开始。跳过n个元素,它返回一个新的迭代器
* 4.take(n)从当前位置开始。获取n个元素,它返回一个新的迭代器
* 5.duplicate 复制迭代器
*/
def main(args: Array[String]): Unit = {
//获取一个迭代器
val it = List(1,2,3,4,5,6,7,8,9,10).iterator
val (it1,it2) = it.duplicate
// println(it.next())
// println(it.next())
// println(it.next())
// println(it.next())
// println(it.next()) //
val it3= it.take(3)
while (it3.hasNext){
println(it3.next())
}
println("= = = = = = = = = ")
// while(it2.hasNext){
// println(it2.next())//6,7,8,9
}
}
/**
-
1.next()获取当前元素,移动一次迭代器
-
2.hasNext判断是否有下一个元素
-
3.drop(n)从当前位置开始。跳过n个元素,它返回一个新的迭代器
-
4.take(n)从当前位置开始。获取n个元素,它返回一个新的迭代器
-
5.duplicate 复制迭代器
-
6.toList把迭代器中剩余的一个元素放在一个新的List中
-
7.zip把两个迭代器合并成一个新的迭代器,可以同步移动这两个迭代器,并且以短的为准 */
package iteraator
object iterator03 { def main(args: Array[String]): Unit = { 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.) } } }