Scala 基础集合计算函数代码示例
详细总结查看本文
package collectionsdemo
import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
object NormalCollectionFunctionDemo {
def main(args: Array[String]): Unit = {
val arr = new Array[Int](5)
val arr1: Array[Int] = Array(1,3,5,7,9)
val arr2: Array[Int] = Array(1,3,5,7,9)
val arrBuf1 = ArrayBuffer(11,33,55,77,99)
val arrBuf2 = ArrayBuffer(22,44,66,88,1010)
val list1 = List(1,3,5,7,9)
val list2 = List(2,4,6,8,10)
val listBuf1 = ListBuffer(11,33,55,77,99)
val listBuf2 = ListBuffer(22,44,66,88,1010)
val set1 = Set(1,3,5,7,9)
val set2 = Set(2,4,6,8,10)
val mutableSet1: mutable.Set[Int] = mutable.Set(11, 33, 55, 77, 99)
val mutableSet2: mutable.Set[Int] = mutable.Set(22,44,66,88,1010)
val map1: Map[String, Int] = Map(("abc", 1), ("def", 3), ("ghi", 5), "jkl" -> 7, "mno" -> 9)
val map2: Map[String, Int] = Map(("pqr", 2), ("stu", 4), ("vwx", 6), "z" -> 8, "bc" -> 10)
val mutableMap1: mutable.Map[String, Int] = mutable.Map("xiaowang" -> 11, "xiaowu" -> 33, "xiaogou" -> 55,
"xiaozhou" -> 77, ("xiaochen", 99))
val mutableMap2: mutable.Map[String, Int] = mutable.Map("wang" -> 22, "wu" -> 44, "gou" -> 66,
"zhou" -> 88, ("chen", 1010))
println(arr1.length + list1.length + set1.size + map1.size)
println(arrBuf1.length + listBuf1.length + mutableSet1.size + mutableMap1.size)
arr1.foreach(println)
list1.foreach(println)
set1.foreach(println)
map1.foreach(println)
arrBuf1.foreach(println)
listBuf1.foreach(println)
mutableSet1.foreach(println)
mutableMap1.foreach(println)
arr1.iterator
list1.iterator
set1.iterator
val it = map1.iterator
while(it.hasNext){
println(it.next() + "aaaa")
}
println( map1.mkString("; "))
println(arr1.contains(1) + " " + list1.contains(1) + " " + set1.contains(1) + " " + map1.contains("abc"))
println(arr1.head + " " + list1.head + " " + set1.head + " " + map1.head)
println(arr1.tail.mkString("Array(", ", ", ")") + " " + list1.tail + " " + set1.tail + " " + map1.tail)
println(arr1.last + " " + list1.last + " " + set1.last + " " + map1.last)
println(arr1.reverse.mkString("Array(", ", ", ")") + " " + list1.reverse + " ")
println(arr1.take(2).mkString("Array(", ", ", ")") + " " + list1.take(2) + " " + set1.take(2) + " " + map1.take(2))
println(arr1.takeRight(2).mkString("Array(", ", ", ")") + " " + list1.takeRight(2) + " " + set1.takeRight(2) + " " + map1.takeRight(2))
val ints: Array[Int] = arr1.drop(2)
println(ints.mkString("Array(", ", ", ")") + " " + list1.drop(2) + " " + set1.drop(2) + " " + map1.drop(2))
println(" 并集" + arr1.union(arr2).mkString("Array(",",",")") + " " + list1.union(list2) + " " + set1.union(set2) + " " + map1. ++(map2))
println(mutableMap1 ++ mutableMap2)
println(arr1.diff(arr2).mkString("Array(",",",")")+ " " + list1.diff(list2) + " " + set1.diff(set2) + " ")
println(arr1.zip(arrBuf1).mkString("Array(",",",")"))
println(list1.zip(listBuf1))
println(set1.zip(mutableSet1))
println(map1.zip(mutableMap1))
println( "滑动窗口" + map1.sliding(3))
map1.foreach(print)
println
for (elem <- map1.sliding(3,3)) {
println(elem)
}
println(arr1.sum)
println(list1.sum)
println(set1.sum)
println(arr1.min + " ;" + arr1.max)
println(list1.min+ " ;" + list1.max)
println(set1.min+ " ;" + set1.max)
val list: List[(String, Int, Double)]= List(("小狗", 18, 172.5), ("小周", 13, 168.2), ("小陈", 23, 188), ("王二", 48, 156))
println(list.minBy(tuple => tuple._2))
println(list.maxBy(tuple => tuple._3))
println(list.minBy(_._3))
println("map 比较" + map1.minBy((tuple:(String, Int)) => tuple._2))
println("sorted 自然排序: " + list1.sorted)
传入隐式参数, 倒序排序
println("sorted+ 隐式参数, 自然排序: " + list1.sorted(Ordering[Int].reverse))
println(list.sortBy((tuple: (String, Int, Double)) => tuple._2))
println(list.sortBy(tuple => tuple._2))
println(list.sortBy(_._2))
println(list.sortBy(_._2)(Ordering[Int].reverse))
println("自定义排序" + list.sortWith((tuple1, tuple2) => tuple1._2 > tuple2._2))
println("自定义排序: " + list.sortWith(_._2 > _._2))
println(map1)
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)