set,可变(mutable),不可变(immutable)

27 阅读2分钟
package set

object set01 {
  def main(args: Array[String]): Unit = {
    val set1 = Set(1,2,3,1,1,1,1)
    //如果放在set中的元素有重复的,它会自动去重:只保留一个
    println(set1)
  }
}
package set
/*
*可变(mutable)
*不可变(immutable)
**/
object set02 {
  def main(args: Array[String]): Unit = {
    //默认情况下,使用的Set是不可变的
    val set1 = scala.collection.immutable.Set(1,2,3,1,1,1,1)
    //可变Set
    val set2 = scala.collection.mutable.Set(1,2,3)
    //添加操作
    //可变的Set可以直接修改他自己
    set2 += 20
    //不可变的Set不可以直接修改他自己
    //set1 += 2
    println(set2)
  }
}
package set
/*
Set常见操作
1 添加元素
2 删除元素
3 判断某个元素是否存在
4 合并一个Set
5 差集
*/
object set03 {
  def main(args: Array[String]): Unit = {
    //可变Set
    val set1 = scala.collection.mutable.Set(1,2,3)
    //1 添加元素
    set1 += 1
    set1 += 4
    //2 删除元素
    set1 -= 1
    //3 判断某个元素是否存在
    val value = 3
    if(set1.contains(value)){
      println(s"${value}存在")
    } else{
      println(s"${value}不存在")
    }
    //4 合并一个Set
    val set2 = scala.collection.mutable.Set("语文")
    val set3 = scala.collection.mutable.Set("数学","英语")
    set2 ++= set3
    println(set2)
    //5交集
    val set4 = scala.collection.mutable.Set("唱歌","跳舞")
    val set5 = scala.collection.mutable.Set("打游戏","打球","跳舞")
    val set6 = set4.intersect(set5)
    //6 交集
    val set7 = scala.collection.mutable.Set("唱歌","跳舞")
    val set8 = scala.collection.mutable.Set("打游戏","打球","跳舞")
    val set9 = set8.diff(set7)
    println(set9)
  }
}
package map
/*
* Map: 映射
* 键值对, 键不能有相同的!
* (key,value)
*
* 鄂 -> 湖北省
* 湘 -> 湖南省
* 赣 -> 江西省
*
* 01 -> xxx
* 02 -> yyy
*
*/
object map01 {
  def main(args: Array[String]): Unit = {

    val map1 = Map( ("alice" -> 90), ("bob" -> 80), ("bob" -> 100) )
    // bob这个键有重复, 只保留一个
    println(map1)
  }
}

屏幕截图 2025-12-03 111051.png

object map01 {
  def main(args: Array[String]): Unit = {

    val map1 = scala.collection.mutable.Map( ("alice" -> 90), ("bob" -> 80), ("bob" -> 100) )
    // bob这个键有重复, 只保留一个
    //1 添加
    map1 += ("juddy" -> 90)
    //2 删除
    map1 -= "bob"
    //3 查询元素
    val key = "alice"
    val ret = map1.get(key)
    if(ret.isDefined){
      println(s"${key} 对应的值是: ${ret.get}")
    } else {
      println(s"${key} 不存在")
    }
    //4 for 循环输出所有
    for((a,b) <- map1){
      println(s"${a},${b}")
    }
     map1.foreach({
      case (key,value) => {
       println(s"${key},${value}")
      }
    })
    println(ret)
  }
}