小编use*_*rix的帖子

Scala - 使用可变HashSet时hashCode和equals的行为

CASE#1-我有以下课程:

class Bear (val aName: String) { 
   def getName: String = aName
   override def equals (a : Any) : Boolean = { println("Test Equals"); true}      
 }
Run Code Online (Sandbox Code Playgroud)

如果我运行以下代码,我会得到以下结果:

import scala.collection.mutable.HashSet 
val bear1 = new Bear("Black") 
val bear2 = new Bear("Black") 
val setBears: HashSet[Bear] = HashSet (bear1,bear2) 
println(setBears) 

res: Set(scalaproj.Bear@7d4991ad, scalaproj.Bear@28d93b30)
Run Code Online (Sandbox Code Playgroud)

CASE#2-但是,当我将hashCode方法添加到类中时

class Bear (val aName: String) { 
   def getName: String = aName
   override def equals (a : Any) : Boolean = { println("Test Equals"); true}      
   override def hashCode() = { println("Test …
Run Code Online (Sandbox Code Playgroud)

functional-programming scala

1
推荐指数
1
解决办法
240
查看次数

标签 统计

functional-programming ×1

scala ×1