Joh*_*eer 4 java lambda comparator java-8
我是Java的新手,现在我必须创建一些Comparator类.
在这个Stackoverflow页面上,我发现了一些关于使用lambda表达式的非常有用的信息.如何通过多个字段比较对象
这让我有关创建这样的Compartor类的事情:
public class WidthComparator implements Comparator{
@Override
public int compare(Object t, Object t1) {
Foto foto1 = (Foto)t;
Foto foto2 = (Foto)t1;
return Comparator.comparing(Foto::getWidth)
.thenComparing(Foto::getHeight)
.thenComparingInt(Foto::getName);
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以当我有一个名为fotosCollection的集合时,我希望能够这样做:
fotosCollection.sort(new HoogteComparator());
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,但我怎么能让它工作?
PS.我必须使用Comparator类.
Comparator.comapring返回Comparator- 您可以直接使用它:
// Define a "constant" comparator
private static final Comparator<Foo> HOOGTE_COMPARATOR =
Comparator.comparing(Foto::getWidth)
.thenComparing(Foto::getHeight)
.thenComparingInt(Foto::getName);
// Use it elsewhere in your code
fotosCollection.sort(HOOGTE_COMPARATOR);
Run Code Online (Sandbox Code Playgroud)