私は自分のツリーのノードに対していくつかのInt値を格納するMapを定義しました。ScalaのMapキーとしてオブジェクトのアドレスを使用
case class Node(value: Int, var left: Node = null, var right: Node)
と地図
private val hMap = new mutable.HashMap[Node, Int]()
私はこの地図を印刷するとき、私は次を得る:
Map(Node(8,null,null) -> 1, Node(11,null,null) -> 1, Node(2,Node(3,null,null),Node(4,Node(5,null,Node(6,null,null)),null)) -> 4)
私はへの参照を見て期待していたNodeクラスは次のように定義されますマップにキーとして格納しているNodeオブジェクトのアドレス(またはそのアドレス)を返します。私の前提は依然として有効で、printメソッドは印刷中にオブジェクトをシリアライズしています。これが真でない場合は、型のマップ(referenceTo(Node) - > int int value)を作成するにはどうすればよいですか。
だから、あなたはIdentityHashMapのようなものが欲しいですか? https://docs.oracle.com/javase/7/docs/api/java/util/IdentityHashMap.html Scalaにも対応しています。 – Sid
あなたは正確に何をしようとしていますか?ケースクラスを印刷すると、その表現が印刷されます。マップ値が必要な場合は、同じ構造を持つ新しいNodeクラスを作成してください。 –
そのツリーの作成に使用したコードを追加してください。 – nmat