0
我需要基於時間窗對元素進行排序,例如,基於時間窗對元素進行排序
8:00 - 9:00
8:00 - 11:00
9:00 - 10.00
9:00 - 12:00
到目前爲止,我的想法是開放時間和關閉時間爲單獨Maps
排序,然後嘗試創建最終的List
sortedList
。但我不確定這個想法是否是最有效的解決方案。有沒有辦法以更簡單的方式解決這個問題?
private List<Customer> sortCustomersByTimeWindows(List<Customer> _C)
{
List<Customer> sortedList = new ArrayList<Customer>();
Map<Integer,Integer> openTimes = new HashMap<Integer,Integer>();
Map<Integer,Integer> closeTimes = new HashMap<Integer,Integer>();
for (int i=0; i<_C.size(); i++)
{
openTimes.put(i,_C.get(i).getOpenTime());
closeTimes.put(i,_C.get(i).getCloseTime());
}
List<Integer> openTimes_values = new ArrayList<Integer>(openTimes.values());
List<Integer> closeTimes_values = new ArrayList<Integer>(closeTimes.values());
Collections.sort(openTimes_values, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
Collections.sort(closeTimes_values, new Comparator<Integer>() {
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
});
for (int i=0; i<_C.size(); i++)
{
//...
}
return sortedList;
}
你的意思是? Map times = new HashMap (); ... times.put(_C.get(i).getOpenTime(),_ C.get(i).getCloseTime());在這種情況下,如何按開放和關閉時間進行排序? –
Aslo,我需要跟蹤'我',因爲它與客戶的id –
連接你可以通過鍵集或值集合獲得迭代器 – shieldgenerator7