我想將一個元組和一個值的排序存儲爲一個條目。我的意思是這樣的由一個元組及其值構成的記錄的高效數據結構
A B -> 1
A C -> 2
E F -> 3
C D -> 4
前兩個值總是唯一的,從某種意義上說,A和B只出現在一起。爲了達到這個目的,有效的數據結構是什麼?請記住,我可能需要從條目中有效地提取任何三個字段?
如果可能,請提供一些相關的代碼!
我想將一個元組和一個值的排序存儲爲一個條目。我的意思是這樣的由一個元組及其值構成的記錄的高效數據結構
A B -> 1
A C -> 2
E F -> 3
C D -> 4
前兩個值總是唯一的,從某種意義上說,A和B只出現在一起。爲了達到這個目的,有效的數據結構是什麼?請記住,我可能需要從條目中有效地提取任何三個字段?
如果可能,請提供一些相關的代碼!
A Map
會運作良好。你需要有一個對象來表示前兩項。確保hashCode
和equals
方法在您的新課程上正確實施。然後你可以使用該類來獲得密鑰。
Map<MyKeyClass, Integer> map = new HashMap<MyKeyClass, Integer>();
map.put(new MyKeyClass("A", "B"), 1);
map.put(new MyKeyClass("A", "C"), 2);
同意。如果可能的話,讓地圖的關鍵字不變。 – Nick 2013-05-01 18:30:03
你能否提供一些代碼片段? – OneMoreError 2013-05-01 18:36:15
試試這個:
public class MyData{
public char name, fname;
public int value;
public Foo(char name, char fname, int value){
this.name = name;
this.fname = fname;
}
}
什麼都不讓它們獨一無二。 (在構造函數中也缺少'value'的設置。 – 2013-05-01 18:27:59
我建議你使用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-01 18:24:20
也許與[HashMap](http://docs.oracle.com/javase/7/docs/api/java/util/HashMap.html)有關? – ajp15243 2013-05-01 18:25:49