タプルと値の並べ替えをエントリとして保存したい。私はこのようなことを意味します
A B -> 1
A C -> 2
E F -> 3
C D -> 4
最初の 2 つの値は、A と B が一緒に 1 回しか発生しないという意味で、常に一意です。エントリから 3 つのフィールドのいずれかを効率的に取得する必要がある場合があることを念頭に置いて、この目的のための効率的なデータ構造は何でしょうか?
可能であれば、関連するコードを提供してください!!
タプルと値の並べ替えをエントリとして保存したい。私はこのようなことを意味します
A B -> 1
A C -> 2
E F -> 3
C D -> 4
最初の 2 つの値は、A と B が一緒に 1 回しか発生しないという意味で、常に一意です。エントリから 3 つのフィールドのいずれかを効率的に取得する必要がある場合があることを念頭に置いて、この目的のための効率的なデータ構造は何でしょうか?
可能であれば、関連するコードを提供してください!!
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);
たとえば、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"));
}
}
これを試して:
public class MyData{
public char name, fname;
public int value;
public Foo(char name, char fname, int value){
this.name = name;
this.fname = fname;
}
}