Angenommen, ich habe eine Klasse:Sortieren Sammlungen mit Objekten mit Float-Wert
class Area{
String id;
Float value;
int startTime;
int endTime;
Map<Integer, List<scheduleRequest>> timeSlotMap;
}
Ich mag den Bereich auf dem Wert sortieren, die eine Fließkommazahl ist. diese
Ich habe versucht:
class Value implements Comparator<Area>{
@Override
public int compare(Area a1, Area a2) {
return (int)(a1.value-a2.value); I also tried this
}
}
Und in Haupt
Area area1=new Area();
area1.value=(float) 1.0;
Area area2=new Area();
area2.value=(float) 0.8;
Area area3=new Area();
area3.value=(float) 0.6;
List<Area> list=new ArrayList<>();
list.addAll(Arrays.asList(area2,area1,area3));
Collections.sort(list, new Value());
Allerdings ist die Liste nicht sortiert.
Sie setze bereich1.value dreimal. Versuchen Sie, Area2.value und area3.value zu setzen. –
Ich bearbeite die Frage, siehe bitte nochmal. @ShearPlane – user6119494
Nur als kurze Anmerkung, normalerweise werden Sie Float-Werte als '1.0f' anstelle von expliziten Umwandlungen' (float) 1.0' sehen. – dambros