這裏排序地圖是地圖結構如下:如何通過價值多層
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;
}
我想的時候ASC曲線進行排序,最後返回仍然是相同的地圖:
proxyCurves.entrySet().stream().sorted(Comparator.comparing(Map.Entry::getValue));
我這樣寫,當我調試它,我可以看到排序工作正常,但最後仍然返回原始曲線,我不知道爲什麼?
proxyCurves.values().stream().forEach(curve -> curve.setPoints(curve.getPoints().stream().sorted(new ComparableComparator<>()).collect(Collectors.toSet())));
不能排序的值的地圖。您只能按鍵進行分類。 – markbernard
您應該提供有效的代碼片段(請參閱[MCVE](https://stackoverflow.com/help/mcve))以演示您擁有的內容以及您嘗試的內容。上面的代碼不會工作,因爲'CurvePoint'沒有實現'Comparable'它不能被添加到'points'。 – SubOptimal