当前位置: 首页 > news >正文

scala中的case class

package test_27
//Set的特点:唯一(元素不同);无序
//case class定义一组数据
case class Book(var bookName:String,var author:String,var price:Double){}
object caseclass {def main(args: Array[String]): Unit = {//定义一个可变setval set1=scala.collection.mutable.Set[Book]()//向Set中添加两条一样的数据val book1=new Book("西游记","吴承恩",100)val book2=new Book("西游记","吴承恩",100)val book3=new Book("西游记","吴承恩",100)println(book1==book2)set1+=book1set1+=book2set1+=book3set1.foreach(s=>{println(s.author)})}}

 去掉case还能否去重?

package test_27
//Set的特点:唯一(元素不同);无序
//case class定义一组数据
//case class Book(var bookName:String,var author:String,var price:Double){
//
//}class Book(var bookName:String,var author:String,var price:Double){//判断是否相等的逻辑bookName相等override def equals(obj: Any): Boolean = {
//    println("equal")
//   trueval ob=obj.asInstanceOf[Book]ob.bookName==bookName}override def hashCode(): Int = bookName.hashCodeoverride def toString: String = s"书名:$bookName\t 作者:$author \t 价格:$price"
}//1.属性的默认修饰是val(不可变),说明定义对象不能改属性
//2.可以省略new
//3.case class它自动提供:
//equals方法
//hashCode方法
//toString方法
case class Student( name:String)
object caseclass {def main(args: Array[String]): Unit = {val s1=new Student("小花")
println(s1)//定义一个可变setval set1=scala.collection.mutable.Set[Book]()//向Set中添加两条一样的数据val book1=new Book("西游记","吴承恩",100)val book2=new Book("西游记","吴承恩",100)val book3=new Book("西游记","吴承恩",100)println(book1==book2)set1+=book1set1+=book2set1+=book3set1.foreach(s=>{println(s.author)})}}

 

http://www.lryc.cn/news/483886.html

相关文章:

  • 探索 HTTP 请求方法:GET、POST、PUT、DELETE 等的用法详解
  • 前端项目中,public文件下的system.js有什么作用
  • odoo-040 odoo17前端的js方法调用后端py方法action报错
  • 图形 2.7 LDR与HDR
  • DP动态规划基础题(Kadane算法)
  • [UnLua]动态创建SceneCapture2d相机,并且添加渲染目标纹理
  • 【leetcode练习·二叉树】用「分解问题」思维解题 I
  • 【gitlab-ce】各组件介绍
  • PostgreSQL分区表:基础语法与运维实践
  • Docker入门系列——DockerFile的使用
  • 数据集平台分享
  • 去地面算法——depth_clustering算法调试(1)
  • 设计模式-七个基本原则之一-单一职责原则 + SpringBoot案例
  • HWA高速辅助驾驶系统组成及功能场景
  • SpringMVC学习笔记(一)
  • kaggle 如何利用API下载数据集
  • 第一个 Flutter 项目(1)共46节
  • 学术论文写作丨机器学习与深度学习
  • 导-4涉及的知识点
  • 从0开始深度学习(28)——序列模型
  • vue2使用 <component> 标签动态渲染不同的表单组件
  • C#实现在windows上实现指定句柄窗口的指定窗口坐标点击鼠标左键和右键的详细情况
  • 探索Python自动化新境界:Invoke库的神秘面纱
  • CSS样式实现3D效果
  • 华为eNSP:MSTP
  • modbus协议 Mthings模拟器使用
  • 内网安全-代理技术-socket协议
  • 选择排序(C语言)
  • ✍Qt自定义带图标按钮
  • 【Git】如何在 Git 项目中引用另一个 Git 项目:子模块与子树合并