import scala.collection.mutable
import scala.collection.mutable.{ArrayBuffer, ListBuffer}
/**
* @author aqi
* @since 2023/6/30 15:53
* @describe 数组
*/
object Arr {
def main(args: Array[String]): Unit = {
// 声明定长数组(数组长度不可变)
val ints = new Array[Int](2)
val strings = Array("java", "scala", "python")
// 获取数组的某个元素
ints(0) = 100;
println(ints(0))
// 声明可变数组
val arrayBufferInts = ArrayBuffer[Int]()
val arrayBufferStrings = ArrayBuffer("java", "scala", "python")
// 添加元素
arrayBufferStrings.append("hadoop")
arrayBufferStrings += "flume"
// 删除元素
arrayBufferStrings.remove(1)
arrayBufferStrings -= "hadoop"
// 追加数组
arrayBufferStrings ++= Array("hive", "sqoop")
// 元组(元组可以用来包含一组不同类型的值。例如:姓名,年龄,性别,出生年月。元组的元素是不可变的)
// 声明一个元组
val tom = ("tom", 20, "男")
// 获取元组中的数据
val name = tom._1
val age = tom._2
val gender = tom._3
// 使用->声明一个元组(只能包含2个元素,多出来的元素会被包在一块)
// ((lucy,30),女)
val lucy = "lucy" -> 30 -> "女";
// (lucy,30)
val value = lucy._1
// 女
val value1 = lucy._2
// 列表(1、可以保存重复的值, 2、有先后顺序)
// 声明一个不可变列表
val strList = List("java", "scala")
// 声明一个不可变空列表
val emptyList = Nil
// 使用::方法创建一个不可变列表
val a = "1" :: "2" :: "3" :: Nil
// 声明一个可变队列
val intList = ListBuffer(1, 2, 3, 4)
val intsList = ListBuffer[Int]()
// 常用api
// 获取元素
intList(1)
// 添加元素
intList.append(5)
intList += 10000
// 追加一个列表
intList ++= ListBuffer(7, 8)
// 删除元素(这里是值,不是下标)
intList -= 10000
// 转为不可变列表
intList.toList
// 转换为数组
intList.toArray
// 判断列表是否为空
intList.isEmpty
// 接两个列表
ListBuffer(1, 2) ++ ListBuffer(3, 4)
// 获取列表的首个元素
intList.head
// 获取除第一个元素以外的元素
intList.tail
// 反转列表
intList.reverse
// 获取列表前缀(前3个元素)
intList.take(3)
// 获取列表后缀(除了前2个元素之外)
intList.drop(2)
// 拉链(使用zip将两个列表,组合成一个元素为元组的列表)
val zipA = List("zhangsan", "lisi", "wangwu")
val zipB = List(19, 20, 21)
// List[(String, Int)] = List((zhangsan,19), (lisi,20), (wangwu,21))
val zipResult = zipA.zip(zipB)
// 拉开
// (List[String], List[Int]) = (List(zhangsan, lisi, wangwu),List(19, 20, 21))
zipResult.unzip
// toString
// List(1, 2, 3, 4)
intList.toString()
// 1,2,3,4
intList.mkString(",")
// 并集(获取这两个列表的并集)
val unionA = List(1,2,3,4)
val unionAB = List(3,4,5,6)
// List[Int] = List(1, 2, 3, 4, 3, 4, 5, 6)
val unionResult = unionA.union(unionAB)
// 交集(获取这两个列表的交集)
val intersectA = List(1,2,3,4)
val intersectB = List(3,4,5,6)
// List[Int] = List(3, 4)
val intersectAResult = intersectA.intersect(intersectB)
// 差集(获取这两个列表的差集,表示获取diffA在diffB中不存在的元素)
val diffA = List(1,2,3,4)
val diffB = List(3,4,5,6)
// List[Int] = List(1, 2)
diffA.diff(diffB)
// set集合(1、元素不重复,2、不保证插入顺序)
// 创建不可变集合
val intSet = Set[Int]()
val strSet = Set("java", "hive", "scala")
// 创建可变集合
val intsSet = Set(1,2,3,4)
// Map映射()
// 不可变Map
val map = Map("zhangsan"->30, "lisi"->40)
// 根据key获取value
map("zhangsan")
// 可变Map
val changeMap = mutable.Map("zhangsan" -> 30, "lisi" -> 40)
// 赋值
changeMap("zhangsan") = 20
// 获取所有key
changeMap.keys
// 获取所有vale
map.values
}
}
Scala集合
最新推荐文章于 2024-07-21 07:09:13 发布