如何按数字从高到低的顺序对数组进行排序。
数组
ArrayList<TestClass> array1 = new ArrayList<>();
Class
public class TestClass{
public boolean type;
public int counter;
public TestClass(boolean type, int counter) {
this.type = type;
this.counter = counter;
}
}
我尝试这样做
Collections.sort(array1);
但是我遇到了错误
原因:不存在类型变量T的实例,以使TestClass符合Comparable
答案 0 :(得分:1)
假设您没有任何辅助方法,则可以使用
array1.sort(Comparator.comparing(a -> a.counter));
您要求的排序顺序是反向顺序,有两种方法可以实现。
您可以像
那样简单地做与上一类相反的操作array1.sort(Comparator.comparing(a -> a.counter));
array1.sort(Collections.reverseOrder());
如果您不能使用Comparator.comparing
,则可以执行以下操作
Collections.sort(array1, (item1, item2) -> Integer.compare(item2.counter, item1.counter));
上面的陈述可以解释如下。
Collections.sort()
提供 Java collections framework
。
第一个参数指定需要对哪个集合进行排序。
答案 1 :(得分:0)
arrayList.sort(new Comparator<TestClass>() {
@Override
public int compare(TestClass testClass, TestClass t1) {
return Integer.compare(t1.counter, testClass.counter);
}
});