hier sortieren ist die Karte mit der folgenden Struktur:Wie man eine Karte von Wert in Multi-Layer
Map<String, Oddcurve> curves;
class Oddcurve entends Curve {
private String curvename;
}
class Curve {
private int curveId;
protected Set<CurvePoint> points = new TreeSet();
}
class CurvePoint {
private double time;
private double value;
}
Ich mag die Kurven durch die Zeit ASC sortieren und schließlich noch die gleiche Karte zurück:
Ich schreibe auf diese Weise, Wenn ich es debugge, kann ich sehen, dass die Sortierung funktioniert gut, aber schließlich gibt immer noch die ursprünglichen Kurven, ich weiß nicht warum?
proxyCurves.values().stream().forEach(curve -> curve.setPoints(curve.getPoints().stream().sorted(new ComparableComparator<>()).collect(Collectors.toSet())));
Sie können eine Karte auf den Werten sortieren. Sie können es nur auf den Schlüsseln sortieren. – markbernard
Sie sollten gültige Code-Snippets bereitstellen (siehe [MCVE] (https://stackoverflow.com/help/mcve)), um zu demonstrieren, was Sie haben und was Sie versucht haben. Das obige würde nicht so funktionieren, wie es ist, da 'CurvePoint' nicht 'Vergleichbar' implementiert, es kann nicht zu 'Punkten' hinzugefügt werden. – SubOptimal