Scala中的List有序可重复集合:列表List基本使用
程序员文章站
2022-06-09 21:59:58
...
package com.fuyun.bigdata.scala.collection
import scala.collection.mutable.ListBuffer
/**
* List有序可重复集合:列表List基本使用
*/
object ListDemo {
def main(args: Array[String]): Unit = {
// 创建空列表
val list = Nil
println(s"list : ${list.mkString(", ")}")
// 创建不可变的列表list
val list1 = List(3, 6, 8, 9)
/*
* 在scala中list的组成
* list = head(element) + tail(是一个list,除了头部元素以外的其他组成的list集合)
*/
println(s"list1 head is :${list1.head}")
println(s"list1 tail is :${list1.tail}")
println(s"list element top three is:${list1.sorted.reverse.take(3)}")
// TODO: 如果list只有一个元素,head为元素,tail为空集合 List()/Nil
val list2 = List(66)
println(s"list2 head is :${list2.head}")
println(s"list2 tail is :${list2.tail}") // 空的集合,可使用Nil表示
// list的第二种创建方式
/*
* TODO -> 1 :: List(2, 3) = List(2, 3).::(1) = List(1, 2, 3)
*
*/
/*
* 下面的运算从右到左
* 首先是头部为1,尾部为空列表的列表
* 然后将这个列表作为尾部,头部为2组成新列表
* 最后结果为List(2, 1)
*/
val list3 = 2::1::Nil
println(list3.mkString(", "))
/*
* 可变的list:ListBuffer,类似可变的ArrayBuffer
* 记得导包
*/
import scala.collection.mutable
// 创建ListBuffer实例对象
val listBuffer = ListBuffer[Int]()
// 向可变的listBuffer中添加
listBuffer += 1
listBuffer += 3
// ++=方法用于添加列表中每个元素
listBuffer ++= List(6, 8)
// 添加元组
listBuffer += (5, 9, 6)
// 同样,如果对可变的list集合进行操作,建议将其转换为不可变的list列表
val list4 = listBuffer.toList
println(list4.mkString("< ", ", ", " >"))
// 判断是否为空
println(list4.isEmpty)
// 判断某个元素是否在列表中
println(list4.contains(6))
// 以反序方式从数组末尾到数组头遍历元素
println(list4.reverse(3)) // 从末尾数第4个元素
println(list4.reverse) // 反序输出列表
// 对列表进行去重
println(list4.distinct)
// 第1到第3个元素
println(list4.slice(0, 3))
}
}
运行结果:
list :
list1 head is :3
list1 tail is :List(6, 8, 9)
list element top three is:List(9, 8, 6)
list2 head is :66
list2 tail is :List()
2, 1
< 1, 3, 6, 8, 5, 9, 6 >
false
true
8
List(6, 9, 5, 8, 6, 3, 1)
List(1, 3, 6, 8, 5, 9)
List(1, 3, 6)
Process finished with exit code 0
上一篇: 集合一些方法陷阱
下一篇: 一种简单的边界提取思路Matlab实现