[問題] 請問如何實作兩個key和一個value的對應關係?
請問一下,假設我有 四筆data,分別是 A, B, C, D,每個data可以兩兩算距離,
例如 AB, AC, AD, BC, BD, CD。
我希望有一個資料結構可以把這些距離的關係保存下來,並且可以很快的找到他們,
例如:getDistance(A, B),就可以把A和B的距離取出來,請問該怎麼做比較好呢?
我目前想到的方法是這樣:
=========================================================================
class PairCollection{
ArrayList<Pair> pairs; //all pairs(例如 ab, ac, ad, bc........)
double getDistance(data a, data b){
for(Pair p: pairs){ //對全部的 pair 掃描一次
if(p.contain(a) && p.contain(b)){ //如果pair中有a且b
return p.getDisntace;
}
}
}
}
---------------------------------------------------------------------------
class Pair{
HashSet<data> dataPair; //用hashset來存data
double distance; //這個pair(例如a和b)的距離
......
}
===========================================================================
但總覺得不夠聰明,每次想取得距離就要全部拿來比對,不知道會不會很慢,
不知道有沒有什麼比較好的作法,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.148.61
推
05/15 13:33, , 1F
05/15 13:33, 1F
推
05/15 13:35, , 2F
05/15 13:35, 2F
→
05/15 13:42, , 3F
05/15 13:42, 3F
→
05/15 13:44, , 4F
05/15 13:44, 4F
推
05/15 13:44, , 5F
05/15 13:44, 5F
→
05/15 13:45, , 6F
05/15 13:45, 6F
推
05/15 14:22, , 7F
05/15 14:22, 7F