0

タプルと値の並べ替えをエントリとして保存したい。私はこのようなことを意味します

A B -> 1
A C -> 2
E F -> 3
C D -> 4

最初の 2 つの値は、A と B が一緒に 1 回しか発生しないという意味で、常に一意です。エントリから 3 つのフィールドのいずれかを効率的に取得する必要がある場合があることを念頭に置いて、この目的のための効率的なデータ構造は何でしょうか?

可能であれば、関連するコードを提供してください!!

4

3 に答える 3

7

AMapはうまくいくでしょう。最初の 2 つの項目を表すオブジェクトが必要です。hashCodeメソッドとequalsメソッドが新しいクラスに正しく実装されていることを確認してください。次に、そのクラスをキーに使用できます。

Map<MyKeyClass, Integer> map = new HashMap<MyKeyClass, Integer>();
map.put(new MyKeyClass("A", "B"), 1);
map.put(new MyKeyClass("A", "C"), 2);
于 2013-05-01T18:26:20.423 に答える
1

たとえば、HashMap を使用することをお勧めします。

public class Test {
    public void TestHashMap() {
        Map<Tuple<String,String>, Integer> myMap = new HashMap<Tuple<String,String>, Integer>();
        myMap.put(new Tuple<String,String>("A","B"), 1);
        myMap.put(new Tuple<String,String>("A","C"), 2);

        myMap.get(new Tuple<String,String>("A","C"));
    }
}
于 2013-05-01T18:30:14.533 に答える
0

これを試して:

public class MyData{
   public char name, fname;
    public int value;

public Foo(char name, char fname, int value){
    this.name = name;
    this.fname = fname;
}
}
于 2013-05-01T18:27:11.040 に答える