【发布时间】:2016-02-02 14:37:07
【问题描述】:
基本上我有三个变量 a、b 和 c。变量之间有一定的关系。我需要将变量存储在 HashSet 中,这样每个变量都会不同,不会有任何冗余。
Java方式:
在 java 中,我只需创建一个自定义类,覆盖该自定义类中的 hash 和 equal 方法,我就完成了。
HashSet<CustomClass> hSet = new HashSet<CustomClass>();
Scala方式(Scala新手):
Introduction to Sets and Maps for Scala
在这里,我很困惑在 trait 、 class 和 object 之间进行选择。显然,乍一看,我不能将特征和类分配给 var / val (请让我知道上述是否可以完成)。所以对象是要走的路。
object State {
var a: Int;
var b: Int;
var c: Int;
}
问题 1: 我应该如何定义自定义(类/特征/对象)HashSet?
Scala 中的普通 HashSet 声明:var hSet = new HashSet();
问题 2: 如何为新对象赋值?例如,
var newState = State;
newState.a = 100;
hSet.add(newState);
错误:类型不匹配;发现:需要 Int(100):Int.type
谢谢
【问题讨论】:
-
最简单和最常用的方法是为您的元素使用
case class。 -
我是 Scala 新手。谢谢,我会查一下。
标签: scala hashset scala-collections