1282得票29回答
按属性对自定义对象的ArrayList进行排序

我了解到可以使用Comparator对ArrayList进行排序,但在所有示例中,人们都使用了compareTo方法,这是一种针对字符串的方法。 我想要通过一个自定义对象属性(Date类型的getStartDay()方法)来对ArrayList进行排序。通常,我会使用item1.getSta...

221得票14回答
比较方法违反了它的通用契约!

能否简单地解释一下为什么这段代码会抛出异常“Comparison method violates its general contract!”,以及如何修复它?private int compareParents(Foo s1, Foo s2) { if (s1.getParent()...

200得票16回答
如何在Java中使用Comparator进行排序

我学会了如何使用Comparable但是对于Comparator不太熟悉。我的代码出现了错误:Exception in thread "main" java.lang.ClassCastException: New.People cannot be cast to java.lang.Comp...

159得票2回答
Java:Comparable与Comparator的区别

可能的重复问题: compare()和compareTo()之间的区别 Java:实现Comparable和Comparator之间的区别是什么? Comparable和Comparator之间的主要区别是什么? 在哪些情况下更喜欢使用其中之一? 谢谢 更新 - 带有示例的好链接...

152得票4回答
Comparator.reversed()使用lambda表达式无法编译

我有一个包含一些用户对象的列表,我试图对该列表进行排序,但只有使用方法引用才能正常工作,使用Lambda表达式会导致编译器出错:List<User> userList = Arrays.asList(u1, u2, u3); userList.sort(Comparator.com...

146得票11回答
何时应该将类定义为可比较的或比较器?

我曾经见过实现了 Comparable 和 Comparator 接口的类。这是什么意思?我该使用哪个接口?它们有何不同之处?

145得票6回答
Java 8中如何反转比较器

我有一个ArrayList想要按照降序排序。我使用了java.util.stream.Stream.sorted(Comparator)方法。以下是根据Java API的描述:   返回由此流的元素组成的流,根据提供的Comparator进行排序。 这个方法返回一个升序排序的流。我应该...

137得票8回答
Javascript的sort()方法是如何工作的?

以下代码如何将数组按数字顺序排序?var array=[25, 8, 7, 41] array.sort(function(a,b){ return a - b }) 我知道如果计算结果小于0,"a"会按顺序排在"b"之前。 如果计算结果等于0,"a"和"b"被认为是相等的,不进行排序。...

133得票15回答
Android-java-如何按对象内的某个值对对象列表进行排序

我正在尝试通过对象中的特定值对一个ArrayList进行排序。如何最好地实现这样的功能?我应该使用Collections.sort()和某种比较器吗? 我正在尝试按照它们在某个变量中保存的float值对对象列表进行排序。 编辑: 这是我到目前为止的代码:public class Custo...

123得票19回答
何时使用Comparable和Comparator

我有一个对象列表,需要按照某个字段(例如Score)进行排序。我写了一个新的实现Comparator接口的类来完成任务,并且它可以工作。 现在回过头想,我在想是否应该让我的类实现Comparable接口,而不是创建一个实现Comparator接口的新类。分数是对象排序的唯一字段。 我所做...