基本上我有三个变量a,b和c。这些变量之间有一定的关系。我需要将变量存储在HashSet中,以便每个变量都不相同,并且不会有任何冗余。在Scala中定义自定义HashSet?
的Java方法:
在java中我只创建一个自定义类,覆盖散列和平等的方法在自定义类,我会做。
HashSet<CustomClass> hSet = new HashSet<CustomClass>();
斯卡拉方式(Scala的新手):
Introduction to Sets and Maps for Scala
在这里,我很困惑一个特点,类和对象之间进行选择。显然,在第一次看,我不能有特性和类分配给var/val(请让我知道,如果上述可以完成)。所以对象是要走的路。
object State {
var a: Int;
var b: Int;
var c: Int;
}
问题1: 我应该如何定义自定义(类/特征/对象)HashSet的?
普通HashSet的申报史卡拉:var hSet = new HashSet();
问题2: 如何值分配给新的对象?例如,
var newState = State;
newState.a = 100;
hSet.add(newState);
错误:类型不匹配;发现:INT(100)需要:Int.type
谢谢
最简单也是最常用的方法是对你的元素使用'case class'。 – dmitry
我是斯卡拉新手。谢谢,我会查找它。 – kingspp