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)
}
}
}