package com.lyzx.day20181005
/**
* Scala 集合分为可变的和不可变的集合
* 默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用 scala.collection.mutable.Set包.
* 默认引用 scala.collection.immutable._,不可变集合实例如下
*/
class DataStructure {
/**
* 列表的定义
* 可以使用 item :: 列表即t2 Nil表示一个空列表即List() == Nil
* 可以使用 列表 :+ item 在列表后面添加一个元素
* 通过 indices 可以获取列表的下标Range 再通过for循环遍历数组
*/
def list_f1(): Unit ={
val t1:List[Int] = List(1,2,3)
// val t2:List[String] = "C" :: ("A" :: ("B" :: Nil))
val t2 = List("A","B","C") +: "D"
for(item <- t2){
print(item+" , ")
}
println()
for(i <- t1.indices){
println(i+" "+t1(i))
}
/**
* List.head 返回List的第一个元素
* List.tail 返回除了第一个元素的List集合
*/
println("t2.head="+t2.head)
println("t2.tail="+t2.tail)
println("t2.isEmpty="+t2.isEmpty)
}
/**
* 列表的连接
* 1、通过 :: 向List的头部添加一个元素
* 2、
* 2.1、通过 :::添加 t1 ::: t2 表示把t2的元素放在了t1的后面
* 2.2、通过 .::: t1.:::(t2) 表示把t2的元素放在了t1的前面
* 2.3、List.concat() List.concat(t1,t2) 表示把t2的元素放在了t1的后面
*/
def list_f2(): Unit ={
val t1 = "B" :: ("A" :: Nil)
val t2 = List("C","D")
val t2_1 = t1 ::: t2
val t2_2 = t1.:::(t2)
val t2_3 = List.concat(t1,t2)
print(" ::: ")
for(item <- t2_1){
print(item+",")
}
println()
print(" .:::() ")
for(item <- t2_2){
print(item+",")
}
println()
print("List.concat() ")
for(item <- t2_3){
print(item+",")
}
}
/**
* fill函数 表示填充N次元素
* List.fill(2)("A") 表示返回一个列表,其中有2个字符串元素 "A"
*/
def list_f3(): Unit ={
val t1 = List.fill(2)("A")
for(item <- t1){
print(item+" ")
}
println()
val t2 = (t1 ::: ("X" :: Nil)).reverse
for(item <- t2){
print(item+" ")
}
}
/**
* set的基本操作
*/
def set_f4(): Unit ={
val set = Set(100,1,2,3,3,4)
println("1:"+set.getClass.getName)
println("2:"+set.exists( _ >= 4))
println("3:"+set.drop(1))
println("4:"+set.dropRight(1))
println("5:"+set.dropWhile(_ > 3)) //???
for(item <- set){
print(item+" ")
}
println()
println("6:"+set.head)
println("7:"+set.tail)
println("8:"+set.isEmpty)
}
/**
* set的连接
*/
def set_f5(): Unit ={
val s1 = Set(1,2,3,4)
val s2 = Set(2,3,4,5)
val
《scala函数式编程》之List和Set
最新推荐文章于 2021-12-29 21:42:29 发布
本文主要介绍了Scala编程中两种重要的数据结构——List和Set,包括它们的API详细内容,帮助读者深入理解其特性和使用方法。
摘要由CSDN通过智能技术生成