小企业公司网站怎么建,学习网站导航,logo制作网站免费,一个主体可以备案几个网站1.对比foreach 它的优点在于#xff1a;
(1) 内存效率高。迭代器采用延迟计算的方式#xff0c;它不会将整个集合加载到内存中#xff0c;而是在每次调用next方法时才计算并返回下一个元素。
(2) 统一的遍历方法。迭代器为不同类型的集合#xff08;如列表、集合、映射等…1.对比foreach 它的优点在于
(1) 内存效率高。迭代器采用延迟计算的方式它不会将整个集合加载到内存中而是在每次调用next方法时才计算并返回下一个元素。
(2) 统一的遍历方法。迭代器为不同类型的集合如列表、集合、映射等提供了一种统一的遍历方式。无论底层集合的具体结构如何只要能获取到迭代器就可以使用相同的hasNext和next方法来遍历元素。
(3) 支持函数式编程风格便于链式操作。
2. duplicate方法 功能复制迭代器。返回一对迭代器它们可以独立遍历原始迭代器中的元素序列。
语法(迭代器1,迭代器2) 迭代器.duplicate()
3. toList 方法 toList 方法将迭代器中的剩余元素转换为一个列表。
4.drop和take方法
drop 会跳过指定数量的元素返回一个新的迭代器 take 只处理当前开始的指定数量的元素返回一个新的迭代器
5. zip方法 zip方法用于将两个迭代器的元素按顺序组合成一个新的迭代器其中每个元素是一个包含两个迭代器对应位置元素的元组。如果两个迭代器的长度不同zip操作会在较短的迭代器耗尽时停止。
//package test28
// 迭代器
//object test28_2 {
// def main(args: Array[String]): Unit {
// var 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)
// }
// }
//}