Scala

多维数组
1)多维数组定义
val arr = Array.ofDim[Double](3,4)
说明:二维数组中有三个一维数组,每个一维数组中有四个元素
2)案例实操
object TestSet {
def main(args: Array[String]): Unit = {
//(1)创建了一个二维数组, 有三个元素,每个元素是,含有 4 个元素一维
数组()
val arr = Array.ofDim[Int](3, 4) arr(1)(2) = 88
//(2)遍历二维数组
for (i <- arr) { //i 就是一维数组
for (j <- i) {
print(j + " ")
}
println()
}
}
}
列表List
1、不可变 List
1)说明
(1)List 默认为不可变集合
(2)创建一个 List(数据有顺序,可重复)
(3)遍历 List
(4)List 增加数据
(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化
(7)空集合 Nil
2)案例实操
object TestSet {
def main(args: Array[String]): Unit = {
//(1)List 默认为不可变集合
//(2)创建一个 List(数据有顺序,可重复) val list: List[Int] = List(1,2,3,4,3)
//(7)空集合 Nil
val list5 = 1::2::3::4::Nil
//(4)List 增加数据
//(4.1)::的运算规则从右向左
//val list1 =  5::list val list1 = 7::6::5::list
//(4.2)添加到第一个元素位置val list2 = list.+:(5)
//(5)集合间合并:将一个整体拆成一个一个的个体,称为扁平化val list3 = List(8,9)
//val list4 = list3::list1 val list4 = list3:::list1
//(6)取指定数据println(list(0))
//(3)遍历 List
//list.foreach(println)
//list1.foreach(println)
//list3.foreach(println)
//list4.foreach(println)
list5.foreach(println)
}
可变ListBuffer
1)说明
(1)创建一个可变集合 ListBuffer
(2)向集合中添加数据
2)案例实操
import scala.collection.mutable.ListBuffer object TestSet {
def main(args: Array[String]): Unit = {
//(1)创建一个可变集合
val buffer = ListBuffer(1,2,3,4)
//(2)向集合中添加数据
buffer.+=(5)
buffer.append(6)
buffer.insert(1,2)
//(3)打印集合数据
buffer.foreach(println)
//(4)修改数据
buffer(1) = 6
buffer.update(1,7)
//(5)删除数据
buffer.-(5)
buffer.-=(5) buffer.remove(5)
}
2、可变mutable.Set
1)说明
(1)创建可变集合 mutable.Set
(2)打印集合
(3)集合添加元素
(4)向集合中添加元素,返回一个新的 Set
(5)删除数据
2)案例实操
import scala.collection.mutable
object TestSet {
  def main(args: Array[String]): Unit = {
    //(1)创建可变集合
    val set = mutable.Set(1,2,3,4,5,6)
    //(3)集合添加元素
    set += 8
    //(4)向集合中添加元素,返回一个新的 Set
    val ints = set.+(9)
    println(ints)
    println("set2=" + set)
    //(5)删除数据
    set-=(5)
    //(2)打印集合
    set.foreach(println)
    println(set.mkString(","))
  }
}
Map 集合
Scala 中的 Map 和 Java 类似,也是一个散列表,它存储的内容也是键值对(key-value) 映射
1、不可变 Map
1)说明
(1)创建不可变集合 Map
(2)循环打印
(3)访问数据
(4)如果 key 不存在,返回 0
2)案例实操
def main(args: Array[String]): Unit = {
  // Map
  //(1)创建不可变集合 Map
  val map = Map( "a"->1, "b"->2, "c"->3 )
  //(3)访问数据
  for (elem <- map.keys) {
    // 使用 get 访问 map 集合的数据,会返回特殊类型 Option(选项):有值(Some),无值(None)
    println(elem + "=" + map.get(elem).get)
  }
  //(4) 如 果 key 不 存 在 , 返 回 0
  println(map.get("d").getOrElse(0))
  println(map.getOrElse("d", 0))
  //(2)循环打印
  map.foreach((kv)=>{println(kv)})
}
}
2、可变Map
1)说明
(1)创建可变集合(2)打印集合(3)向集合增加数据(4)删除数据(5)修改数据
2)案例实操
 object TestSet {
    def main(args: Array[String]): Unit = {
      //(1)创建可变集合
      val map = mutable.Map("a" -> 1, "b" -> 2, "c" -> 3)
      //(3)向集合增加数据
      map.+=("d"->4)
      // 将数值 4 添加到集合,并把集合中原值 1 返回
      val maybeInt: Option[Int] = map.put("a", 4)
      println(maybeInt.getOrElse(0))
      //(4)删除数据
      map.-=("b", "c")
      //(5)修改数据
      map.update("d",5)
      map("d") = 5
      //(2)打印集合
      map.foreach((kv) => {
        println(kv)
      })
    }
  }
元组
1)说明
元组也是可以理解为一个容器,可以存放各种相同或不同类型的数据。说的简单点,就
是将多个无关的数据封装为一个整体,称为元组。注意:元组中最大只能有 22 个元素。
2)案例实操
(1)声明元组的方式:(元素 1,元素 2,元素 3)
(2)访问元组
(3)Map 中的键值对其实就是元组,只不过元组的元素个数为 2,称之为对偶
object TestTuple {
def main(args: Array[String]): Unit = {
    //(1)声明元组的方式:(元素 1,元素 2,元素 3)
    val tuple: (Int, String, Boolean) = (40,"bobo",true)
    //(2)访问元组
    //(2.1)通过元素的顺序进行访问,调用方式:_顺序号
  println(tuple._1)
  println(tuple._2)
  println(tuple._3)
    //(2.2)通过索引访问数据
  println(tuple.productElement(0))
    //(2.3)通过迭代器访问数据
    for (elem <- tuple.productIterator) {
      println(elem)
    }
    //(3)Map 中的键值对其实就是元组,只不过元组的元素个数为 2,称之为对偶
    val map = Map("a"->1, "b"->2, "c"->3)
    val map1 = Map(("a",1), ("b",2), ("c",3))
    map.foreach(tuple=>{
      println(tuple._1 + "=" + tuple._2)})
  }
}
7.7集合常用函数
基本属性和常用操作
1)说明
(1)获取集合长度
(2)获取集合大小
(3)循环遍历
(4)迭代器
(5)生成字符串
(6)是否包含
2)案例实操
object TestSet {
def main(args: Array[String]): Unit = {
val list: List[Int] = List(1, 2, 3, 4, 5, 6, 7)
//(1)获取集合长度
println(list.length)
//(2)获取集合大小,等同于 length
println(list.size)
//(3)循环遍历
list.foreach(println)
//(4)迭代器
for (elem <- list.itera tor) { println(elem)
}
//(5)生成字符串
println(list.mkString(","))
//(6)是否包含
println(list.contains(3))
}
}
衍生集合
1)说明
(1)获取集合的头
(2)获取集合的尾(不是头的就是尾)
(3)集合最后一个数据
(4)集合初始数据(不包含最后一个)
(5)反转
(6)取前(后)n 个元素
(7)去掉前(后)n 个元素
(8)并集
(9)交集
(10)差集
(11)拉链
(12)滑窗
2)案例实操
 def main(args: Array[String]): Unit = {
    val list1: List[Int] = List(1, 2, 3, 4, 5, 6, 7)
    val list2: List[Int] = List(4, 5, 6, 7, 8, 9, 10)
    //(1)获取集合的头
  println(list1.head)
    //(2)获取集合的尾(不是头的就是尾)
  println(list1.tail)
    //(3)集合最后一个数据
  println(list1.last)
    //(4)集合初始数据(不包含最后一个)
  println(list1.init)
    //(5)反转
  println(list1.reverse)
    //(6)取前(后)n 个元素
    println(list1.take(3))
  println(list1.takeRight(3))
    //(7)去掉前(后)n 个元素
  println(list1.drop(3))
  println(list1.dropRight(3))
    //(8)并集
  println(list1.union(list2))
    //(9)交集
  println(list1.intersect(list2))
    //(10)差集
  println(list1.diff(list2))
    //(11)拉链 注:如果两个集合的元素个数不相等,那么会将同等数量的数据进行拉链,多余的数据省略不用
    println(list1.zip(list2))
    //(12)滑窗
    list1.sliding(2, 5).foreach(println)
  }
集合计算简单函数
1)说明
(1)求和(2)求乘积(3)最大值(4)最小值(5)排序
(2)实操
object TestSet{
def main(args: Array[String]): Unit = {
val list: List[Int] = List(1, 5, -3, 4, 2, -7, 6)
//(1)求和println(list.sum)
//(2)求乘积println(list.product)
//(3)最大值println(list.max)
//(4)最小值println(list.min)
//(5)排序
// (5.1)按照元素大小排序
println(list.sortBy(x => x))
// (5.2)按照元素的绝对值大小排序
println(list.sortBy(x => x.abs))
// (5.3)按元素大小升序排序
println(list.sortWith((x, y) => x < y))
// (5.4)按元素大小降序排序
println(list.sortWith((x, y) => x > y))
}
}(1)sorted
对一个集合进行自然排序,通过传递隐式的Ordering
(2)sortBy
对一个属性或多个属性进行排序,通过它的类型。
(3)sortWith
基于函数的排序,通过一个 comparator 函数,实现自定义排序的逻辑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值