scala中的case class

news/2024/11/14 7:15:05/

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.ppmy.cn/news/1546864.html

相关文章

代码修改材质参数

1、 如何得到对象使用的材质 获取到对象的渲染器Renderer Mesh Renderer和Skinned Mesh Renderer都继承Renderer,可以用里式替换原则父类获取、装载子类对象 通过渲染器获取到对应材质 可以利用渲染器中的material或者sharedMaterial来获取物体的材质&#xff0…

如何抓住鸿蒙生态崛起的机遇,解决开发挑战,创造更好的应用体验?

一、抓住鸿蒙生态崛起的机遇 深入了解鸿蒙系统的特性和优势 鸿蒙系统采用了全新的技术框架和编程语言ArkTS,具备高性能、高安全性和高弹性等特点。开发者需要熟悉这些特性,以便在开发过程中充分利用鸿蒙系统的优势。鸿蒙系统支持全场景打通、资源能力共享…

【全球气温数据】地表温度+空气温度

目录 数据1:MODIS Gap filled Long-term Land Surface Temperature Daily (2003-2020)数据概述数据下载数据2:A global 1 km resolution daily near-surface air temperature dataset (2003 – 2020)数据概述数据下载参考数据1:MODIS Gap filled Long-term Land Surface Tem…

Python中的面向对象编程,类,对象,封装,继承,多态

一、面向对象编程 1.面向过程和面向对象 面向过程和面向对象都是一种编程方式,只不过再设计上有区别。 面向过程 C语言 细分成每一个过程 优点:简单直观、性能高效、代码简洁。 缺点:不易维护、不易扩展、代码重用性低。 面向对象 p…

CSS的定位(文档流,相对定位,绝对定位,固定定位)

网页文档流 概念 网页文档流(Document Flow)是指元素在页面中出现的先后顺序。它决定了网页的整体布局和排版方式,也是实现网页布局的基础。 文档流的特点:将一个页面从上到下分为一行一行的,其中块元素独占一行&…

YOLO即插即用模块---MEGANet

MEGANet: Multi-Scale Edge-Guided Attention Network for Weak Boundary Polyp Segmentation 论文地址: 解决问题: 解决方案细节: 解决方案用于目标检测: 即插即用代码: 论文地址: https://arxiv.org…

c++ 二分查找

二分法(Binary Search)是一种高效的查找算法,它在有序数组中查找一个元素,利用分治法的思想将查找空间逐步缩小一半。二分法的时间复杂度是 O(log n),比起线性查找(O(n))要高效得多。 基本思想…

TOEIC 词汇专题:科技硬件篇

TOEIC 词汇专题:科技硬件篇 在科技硬件领域中,有一些核心词汇能帮助大家更准确地表达设备的兼容性、功能等内容。今天我们就来学习这些词汇,并配上例句,帮助您更轻松地掌握! 1. 设备与制造 科技硬件包括各类设备&…