我有以下对象
Class Trade{
private Integer tradeId;
private Event eventId;
private Integer tradeVersion;
}
Class Event{
private Integer value;
}
Comparator.comparing(Trade::getEventId().getValue())
someList.sort((Trade o1, Trade o2) -> o1.getEventId().getValue().compareTo(o2.getEventId().getValue()))
; 并且有效,但好奇地知道#1是否可能?
Comparator.comparing(Trade::getEventId).thenComparing(Event::getValue)
,但没有乐趣。 最佳答案
就像这样简单:
trades.sort(Comparator.comparingInt(x -> x.getEventId().getValue()));
还要注意,带有
Comparator.comparing(Trade::getEventId).thenComparing(Event::getValue)
的版本在语义上意味着您首先要按照eventId
进行排序,然后再按照value
进行排序,这看起来并不是您最初想要的。