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

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

//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.kler.cn/a/392526.html

相关文章:

  • Sigrity SPEED2000 Power Ground Noise Simulation模式如何查看PDS系统的自阻抗操作指导
  • 常用的Anaconda Prompt命令行指令
  • JavaScript高级程序设计基础(四)
  • GitLab基于Drone搭建持续集成(CI/CD)
  • aws(学习笔记第十二课) 使用AWS的RDS-MySQL
  • DAY6 线程
  • 私域流量圈层在新消费时代的机遇与挑战:兼论开源 AI 智能名片、2 + 1 链动模式、S2B2C 商城小程序的应用
  • Spring Boot编程训练系统:实现细节与技巧
  • 猿创征文|Inscode桌面IDE:打造高效开发新体验
  • 【Java SE】接口类型
  • qt QProcess详解
  • qt QKeySequence详解
  • MFC图形函数学习08——绘图函数的重载介绍
  • 快速入门Zookeeper
  • 机器学习在医疗健康领域的应用
  • 【C++】类与对象的基础概念
  • Python网络爬虫与数据采集实战——什么是网络爬虫
  • PostgreSQL 锁判断
  • 继承和多态(上)
  • Kafka 之自定义消息拦截器【Kafka 拦截器】
  • 牛客小白月赛104-D小红开锁-模拟
  • Unity常见问题合集(一)
  • workerman的安装与使用
  • TCP/IP协议,TCP和UDP区别
  • L10.【LeetCode笔记】回文链表
  • QObject中QThreadData里面的postEventList和QObjectPrivate里面的postedEvents