检测网站是否被墙,企业网站建设合同 百度文库,深圳市网站设计公司,网页打不开怎么设置浏览器迭代器定义#xff1a;迭代器不是一种集合#xff0c;它是一种用于访问集合的方法。
迭代器需要通过集合对应的迭代器调用迭代器的方法来访问。
支持函数式编程风格#xff0c;便于链式操作。
创建一个迭代器#xff0c;相关代码如下#xff1a;
object Test {def mai…迭代器定义迭代器不是一种集合它是一种用于访问集合的方法。
迭代器需要通过集合对应的迭代器调用迭代器的方法来访问。
支持函数式编程风格便于链式操作。
创建一个迭代器相关代码如下
object Test {def main(args: Array[String]): Unit {val list1 List(1,2,3,4,5)//任务输出每一个元素
// list1.foreach(println)//任务跳过前两个从第3个开始输出//迭代器//1.创建一个迭代器(iterator)val it1 list1.iteratorval it2 it1.drop(2)//依次访问每个元素while (it2.hasNext){println(it2.next())}}
} 运行结果如下 drop从当前位置开始跳过指定数量的元素得到新的迭代器 take:从当前位置开始取几个元素得到新的迭代器
toList的作用把迭代器中剩余的元素保存到一个List中
zip方法拉链把两个迭代器合成一下得到新的迭代器长度以短的为准
相关代码如下
object Test {def main(args: Array[String]): Unit {val list1 List(1, 2, 3, 4, 5)//任务输出每一个元素//list1.foreach(println)//任务跳过前两个从第3个开始输出//迭代器//1.创建一个迭代器(iterator)val it1 list1.iteratorval it2 it1.drop(2)//2.依次访问每个元素// hasNext()是否有下一个// next():得到当前的元素并把迭代器向后移动一个位置while (it2.hasNext) {println(it2.next())}println(it2.hasNext)val list2 List(1,2,3)val it3 list2.iteratorit3.next()it3.next()it3.next()//it3.next() //NoSuchElementException 没有这个元素。迭代器移过头了//迭代器的使用场景Map,List,Set.....都可以使用迭代器来遍历val m1 Map(11-1,22-2)val s1 Set(A,B,C)val it4 s1.iteratorwhile (it4.hasNext){println(it4.next())}println(-*20)//任务是打印前3个val list4 List(1,2,3,4,5,6,7)val it5 list4.iterator//take:从当前的迭代器的位置开始取n个元素val it6 it5.take(3)while (it6.hasNext){println(it6.next())}//只输出4,5,6 跳过前3个再取3个val it7 list4.iterator.drop(3).take(3)while (it7.hasNext){println(it7.next())}//复制迭代器 duplicate 返回值是一个元组有两个一样的独立的迭代器
// 特点:不能回头val list8 List(A,B,C)val (it8, it9) list8.iterator.duplicatewhile (it8.hasNext){println(it8.next())}println(-*20)println(it9.next())println(-*20)//作用把迭代器中剩余的数据保存到List中val list9 List(1,2,3,4)val it10 list9.iteratorit10.next()
// it10.next()val list10 it10.toList // 剩下的数据保存到List中println(list10)//zip:拉链//作用把两个迭代器组合成一个,以短的为准val it11 List(1,2,3,4,5,6,7,8).iteratorval it12 List(one,two,three,four,five).iteratorval it13 it11.zip(it12)while (it13.hasNext){val rs it13.next() //元组println(s${rs._1} --- ${rs._2})// 目标输出
// 1 --- one
// 2 --- two}}
}运行结果如下