是否可以在单一类中实现比较器?

时间:2017-03-30 14:41:19

标签: java class collections implementation comparator

一般来说我看到 - 要在java集合中实现比较器,我们需要2个类,一个类调用sort函数,第二个类实现比较器。我想知道有没有办法在单个类中实现整个比较器概念?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用比较器而不创建第二个类。如果你想在一个类中使用比较器,你有3个选项。你可以1.创建一个内部类。 2.创建一个匿名类,并且3.(这是最好的方法)使用lambda。使用lambdas是创建可读代码的最佳方式。

所以在你的代码中,这应该有效:

al.sort((o1, o2) -> o1.name.compareTo(o2.name));

这很容易。这是Java 8中的新功能,我很高兴他们添加了这个。你的问题触及了OOP的一个垮台。有时,你不想传递对象,只有行为,这就是lambdas所做的。