我有對象的列表,以及對象名單,sortig我正在尋找最簡單的方法來排序的Java 8中列表:最簡單的用java 8拉姆達
public class MyClass {
private Integer someInteger;
private String someString;
}
private List<MyClass> myClasses;
在這個問題上,我已經嘗試了java的8答案:
Collections.sort(myClasses, (MyClass m1, MyClass m2) -> m1.someInteger.compareTo(m2.someInteger));
但我的Eclipse是大喊:
The method sort(List<T>, Comparator<? super T>) in the type
Collections is not applicable for the arguments (List<MyClass>,
(MyClass m1, MyClass m2) -> {})
和:
Type mismatch: cannot convert from Comparator<MyClass> to Comparator<? super T>
我還發現了另外一個例子:
myClasses.sort(Comparator.comparing(MyClasse::getSomeInteger));
但也有錯誤:
The method sort(Comparator<? super MyClass>) in the type List<MyClass>
is not applicable for the arguments (Comparator<MyClass>)
所以,我怎麼能做到這一點的最簡單的方法?
什麼問題是什麼呢?你無法比較對象嗎? – user218046
最簡單的就是尊重「信息隱藏」原則,讓你的班級實施「可比」。第二種最簡單的方法是通過* getters *訪問類屬性,而不是直接使用。 –
第一次嘗試'Collections.sort'。我看不出這是如何實現的,因爲'someInteger'是私有的,因此無法使用'm1.someInteger'來訪問它。也可以看看[this](https://www.mkyong.com/java8/java-8-lambda-comparator-example/)的確切語法 –