1
我寫了這個查詢,我需要返回排序的車輛列表的保留數。我製作了一個出現地圖,並按照從最高到最低的出現次數對它進行了排序。唯一的問題是,我不知道如何從TreeSet
中獲得Vehicle
。如何從TreeSet中分離鍵或值<Map.Entry <key,value>>?
public static void Q_GetAllVehiclesinTraveledReservationsSortedByAmountOfTimesTheyWereReserved(SysData sData){
HashMap<Vehicle,Integer> occ=new HashMap<Vehicle,Integer>();
Vehicle veh=null;
TreeSet<Map.Entry<Vehicle,Integer>> sorted= new TreeSet<>(new Comparator<Map.Entry<Vehicle,Integer>>(){
@Override
public int compare(Entry<Vehicle, Integer> o1,
Entry<Vehicle, Integer> o2) {
return o1.getValue().compareTo(o2.getValue());
}
});
for(Location loc: sData.getLocations().values()){
for(Reservation res: loc.getReservations().values()){
if(res instanceof TraveledReservation){
veh = ((TraveledReservation) res).getTrip().getCar();
if(occ.containsKey(((TraveledReservation) res).getTrip().getCar())){
int val=occ.get(veh);
occ.put(veh, ++val);
}
else{
occ.put(veh, 1);
}
}
}
}
veh=null;
sorted.addAll(occ.entrySet());
}
請在問題的格式代碼 –
嗯,這是一個方法的名字.... –
也許我不明白這個問題,但讓汽車出門應該是直截了當的。遍歷集合(for Entry <> e:sorted){}'並在每個條目上調用'e.getKey()'。 – rob