使用相同的TreeMap中與參數作爲
TreeMap<Integer, LinkedList<Integer>> tMap=new TreeMap<Integer, LinkedList<Integer>>();
這裏考慮的距離爲重點,並作爲mobileNo價值。根據你的陳述,相同的距離有幾個mobileNo值(因爲距離不是唯一的)。所以對於值字段,我們可以有LinkedList或ArrayList。
TreeMap將以排序的方式存儲密鑰。因此,您可以基於密鑰和密鑰的所有值來打印TreeMap。
以下完整代碼給出,
import java.util.Collections;
import java.util.LinkedList;
import java.util.TreeMap;
public class MultiValueCollection {
public static void main(String[] args) {
// TODO Auto-generated method stub
MultiValueCollection mCollection=new MultiValueCollection();
TreeMap<Integer, LinkedList<Integer>> tMap=new TreeMap<Integer, LinkedList<Integer>>();
mCollection.addMobileNumberByDistance(tMap, 40, 65655423);
mCollection.addMobileNumberByDistance(tMap, 40, 76785647);
mCollection.addMobileNumberByDistance(tMap, 40, 85785852);
mCollection.addMobileNumberByDistance(tMap, 40, 96786344);
mCollection.addMobileNumberByDistance(tMap, 40, 57657354);
mCollection.addMobileNumberByDistance(tMap, 20, 13543353);
mCollection.addMobileNumberByDistance(tMap, 20, 23453456);
mCollection.addMobileNumberByDistance(tMap, 30, 33353544);
mCollection.addMobileNumberByDistance(tMap, 30, 43534554);
mCollection.addMobileNumberByDistance(tMap, 30, 59789785);
mCollection.printMobileNumbersByDistance(tMap);
}
public void addMobileNumberByDistance(TreeMap<Integer, LinkedList<Integer>> tMap, int distance, int mobileNo)
{
LinkedList<Integer> list=null;
if(tMap.get(distance)==null)
{
list=new LinkedList<Integer>();
}else
{
list=tMap.get(distance);
}
list.push(mobileNo);
tMap.put(distance, list);
}
public void printMobileNumbersByDistance(TreeMap<Integer,LinkedList<Integer>> distNumberMap)
{
LinkedList<Integer> list;
for(int n : distNumberMap.keySet())
{
list=distNumberMap.get(n);
Collections.sort(list);//Add this line if mobileNo needs to be sorted for a given distance
for(int k : list)
{
System.out.println("key "+n+" value "+k);
}
}
}
}
沒有遺憾,移動領域已經是獨一無二的。但是它們的相應距離可以重複。 – sagar
'它應該按照距離場的升序存儲它們'我不明白。字段是關鍵,距離是價值,你希望它爲兩者排序(以特定的方式)?請詳細說明,也許顯示你的嘗試,以幫助給我一個你在做什麼的想法 –
你打算執行什麼操作 – arunmoezhi