Scala的Set集合

server/2024/11/17 14:05:02/
//设置一个Book。有三个属性:书名,作者,价格
class Book(var bookNmame:String,var author:String,var price:Double){}
object demo7 {def main(args: Array[String]): Unit = {
//    val set1 = Set(1,1,2,3,3)
//    println(set1)//创建可变S儿童,添加两本相同的书val set1 = scala.collection.mutable.Set[Book]()val book1 = new Book("西游记","吴承恩",100)val book2 = new Book("西游记","吴承恩",100)println(book1 == book2)set1 += book1set1 += book2//问题:Set可以把两本相同的书。做去重处理吗?set1.foreach(s =>{println(s.author)})}
}
//Set:特点去重
//设置一个Book。有三个属性:书名,作者,价格
class Book(var bookName:String,var author:String,var price:Double){override def equals(obj: Any): Boolean = {//判断依据是书名相同val o = obj.asInstanceOf[Book]o.bookName == bookName}override def toString: String = s"书名是:$bookName,作者:$author,价格:$price"override def hashCode(): Int = bookName.hashCode()
}
//case class 的特点
//1,数据是只读的
//2,可以省略new
//3,它内置实现了一些方法
//equals hashCode ,toString
case class BookCase(bookName:String,author:String,price:Double)object demo8 {def main(args: Array[String]): Unit = {val book1 = new Book("a","a",1)val book11 = new Book("a","a",1)val set1 = Set(book1,book11)println(set1)val book2 = BookCase("a","a",1)val book3 = BookCase("a","a",1)println(book1 == book11)println(book2 == book3)println(book1)// println会自动去调用对象的toString方法println(book2)}
}

1:case class的定义语法是什么?

case class 类名(属性名:类型,属性名:类型)

2:case class的特点?

它的属性值不能被修改

可以不写new

内置了toString,equals,hashCode特别适用于来定义数据格式


http://www.ppmy.cn/server/142662.html

相关文章

背景替换大模型图像处理gradio部署服务

愿我们终有重逢之时,而你还记得我们曾经讨论的话题。 group 868373192 second group 277356808 1. 导入库 import gradio as gr from PIL import Image from modelscope_studio import encode_image, decode_image, call_demo_service import json import os from…

HP G10服务器ESXI6.7告警提示ramdisk tmp已满

物理服务器是HP G10 VCENTER内两台服务器报错提示ramdisk"tmp"已满,无法写入文件 登录ESXI命令行后发现两台主机的/tmp目录都没有空间了 定位到是ams-bbUsg.txt文件占用了大量的空间 1、关闭集群的DRS功能 2、迁移当前主机上面运行的所有虚拟机至其他主…

传奇996_22——自动挂机

登录钩子函数中执行 callscript(actor, "../QuestDiary/主界面基础按钮/主界面基础按钮QM", "基础按钮QM")基础按钮QM执行了已下代码 #IF Equal <$CLIENTFLAG> 1 #ACT goto PC端面板加载#IF Equal <$CLIENTFLAG> 2 #ACT goto 移动端面板加载…

Redis下载历史版本

Linux版本&#xff1a; https://download.redis.io/releases/ Windows版本&#xff1a; https://github.com/tporadowski/redis/releases Linux Redis对应gcc版本

Javamail发送Excel附件具体实现

在我写大学生高考志愿填报的时候&#xff0c;将推荐出来的专业表的信息发送到指定的账户的邮件中 下面代码的实现讲解&#xff1a; 首先创建配置文件&#xff0c;配置邮箱账户的信息配置用于生成表格的实体类&#xff0c;实体类中的信息就对应着Excel表中的信息逻辑的具体实现…

Python 打包教程:从零开始构建可分发的Python包

Python 打包教程&#xff1a;从零开始构建可分发的Python包 引言 在Python开发中&#xff0c;打包是一个重要的环节。无论是共享代码、发布库还是部署应用&#xff0c;创建一个可分发的Python包都是必不可少的步骤。本文将详细介绍如何打包Python项目&#xff0c;涵盖从基础知…

11.12.2024刷华为OD-集合的使用,递归回溯的使用

文章目录 HJ41 集合的使用HJ43 迷宫问题--递归回溯的使用语法知识记录 HJ41 集合的使用 HJ43 迷宫问题–递归回溯的使用 def dfs(x, y, path, grid):n len(grid)m len(grid[0])if x n-1 and y m-1:for cor in path:print("({},{})".format(cor[0],cor[1]))# 判断…

JVM(二、类加载系统)

类加载器 JVM的类加载通过classLoader及其子类完成的 类加载器&#xff1a; 启动类加载器&#xff08;Bootstrap ClassLoader&#xff09;&#xff1a; 负责加载存放在 <JAVA_HOME>\lib 目录中的核心类库&#xff0c;如rt.jar、resources.jar等&#xff08;或者被 -Xboot…