Scala中set和case class的特点和例题

news/2024/11/16 10:45:19/
//package Scala3
//
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 的定义语法:case class 类名(属性名:类型,属性名:类型)
//
case class的特点
1.数据是只读的。
2.可以省略new
3.它可以实现了一些方法
equals hashCode,toString
//case class Bookcase(bookName: String, author: String,price: Double) {}
//object gdsahi1 {
//  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("*"*100)
//
//    println(set1)
//
//    println("*"*100)
//
//    val book2 =  Bookcase("a","a",1)
//    val book3 =  Bookcase("a","a",1)
//
//    println(book1==book11)
//    println(book2==book3)
//
//    println("*"*100)
//
//    println(book1)//println会自动去调用对象的toString方法
//    println(book2)
//
//
//
//
//  }
//}

http://www.ppmy.cn/news/1547427.html

相关文章

Vue.js组件数据共享的轻量级解决方案:Provide/Inject

前言 Vue.js 提供了多种方式来管理和共享状态,包括最常用的 Vuex。然而,在某些情况下,我们只需要在父子组件之间进行简单的数据共享,而不需要引入完整的全局状态管理解决方案。Vue.js 通过 provide 和 inject API 提供了一种轻量…

利用redis的key失效监听器KeyExpirationEventMessageListener作任务定时提醒功能

某需求: 要求在任务截止日期的前3天时,系统自动给用户发一条消息提醒。 用定时任务的话感觉很不舒服。间隔时间不好弄。不能精准卡到那个点。 由于系统简单,没有使用消息列队,也不能使用延时队列来做。 用Timer的话开销还挺大的&a…

Java集合(Collection+Map)

Java集合&#xff08;CollectionMap&#xff09; 为什么要使用集合&#xff1f;泛型 <>集合框架单列集合CollectionCollection遍历方式List&#xff1a;有序、可重复、有索引ArrayListLinkedListVector&#xff08;已经淘汰&#xff0c;不会再用&#xff09; Set&#xf…

深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器

在深度学习的计算机视觉任务中&#xff0c;提升图像分辨率和压缩特征图是重要需求。Pixel Shuffle和Pixel Unshuffle是在超分辨率、图像生成等任务中常用的操作&#xff0c;能够通过转换空间维度和通道维度来优化图像特征表示。本篇文章将深入介绍这两种操作的原理&#xff0c;…

Verilog HDL学习笔记

Verilog HDL&#xff08;Hardware Description Language&#xff09;是在一种硬件描述语言&#xff0c;类似于计算机的高级编程设计语言&#xff0c;它具有灵活性高&#xff0c;容易学习和使用等特点&#xff0c;同时Verilog能够通过文本的形式来描述数字系统的硬件结构和功能。…

AVL树了解并简单实现

这篇文章默认知道二叉搜索树&#xff0c;如果了解并不多可以先看看二叉搜索树了解和实现-CSDN博客 目录 1.AVL树概念 2.AVL树节点定义 3.AVL树的插入&#xff08;重点&#xff09; 3.1AVL树 3.2AVL树的旋转 3.3AVL树插入代码 4.AVL树的验证 5.AVL树的删除 6.AVL树的性能…

交换排序——冒泡排序

交换排序——冒泡排序 7.6 交换排序——冒泡排序冒泡排序概念参考程序冒泡排序的特性总结 7.6 交换排序——冒泡排序 交换排序基本思想&#xff1a;所谓交换&#xff0c;就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置&#xff0c;交换排序的特点是&…

一键生成本地SSL证书:打造HTTPS安全环境

一键生成本地SSL证书&#xff1a;打造HTTPS安全环境 日光下的寒林没有一丝杂质&#xff0c;空气里的冰冷仿佛来自故乡遥远的北国&#xff0c;带着一些相思&#xff0c;还有细微几至不可辨认的骆驼的铃声。–《心美&#xff0c;一切皆美》 在本地开发环境中启用 HTTPS 一直是许多…