2011-12-04 7 views
0

キー:対話鍵があるアンドロイド2次元のハッシュマップIは、オブジェクトのハッシュマップを作成し、2次元のキーを使用したい

public HashMap<ConversationKey, ConversationItem> ConversationMap = new HashMap<ConversationKey, ConversationItem>(); 

public class ConversationKey { 

private String Left; 
private String Right; 

} 

が、私はそうではありません別の投稿ではhashcode()とequals()が必要だと言っていましたが、hashcode()は利用できませんし、実装されていないメソッドを自動的に追加するとcompareTo()を追加します。

誰かが2つの文字列値をキーとして供給してハッシュマップからアイテムを取得するために使用される2dキーオブジェクト?ここ

は、私がこれまで持っているものです。

public class ConversationKey implements Comparable<ConversationKey> { 

private String Left; 
private String Right; 

public ConversationKey(String left, String right) { 

    Left = left; 
    Right = right; 
} 

@Override 
public boolean equals(Object obj) { 
     if (obj instanceof ConversationKey) { 
      return Left.equals(((ConversationKey)obj).Left) && 
        Right.equals(((ConversationKey)obj).Right); 
     } 
     return false; 
    } 

@Override 
public int compareTo(ConversationKey another) { 

    if (Left.equals(another.Left) && Right.equals(another.Right)) { 
     return 0; 
    } 

    return -1; 
} 

} 

エンドの実装ビーイング:

ConversationKey ck = new ConversationKey("jack", "jane"); 
ConversationItem Conversation1 = ConversationMap.get(ck); 

答えて

0

私は「同等のためにあなたは何を私ができるのです

public int compareTo(ConversationKey ck){} 
+0

を使用する必要があると思いますtは動作するようにも見える、コンパイラと呼ばれる別のタイプがある - どちらを実装しようとしているかわからない – GideonKain

+0

相当のものが使用されているd(比較可能なオブジェクト).Comparatorは、関連するメソッドをオーバーライドしてオブジェクトを比較するクラスです.Comparatorは、たとえば、次のように使用できます。 collections.sort( "コンパイラクラスオブジェクトはこちら") –

関連する問題