Collections.sort() 排序规则
时间: 2024-02-05 17:02:08 浏览: 24
Collections.sort()的排序规则是根据我们返回的值进行排序。在compare方法中,可以按照自己的规则进行计算,决定返回值是多少。根据compare(a, b)方法的返回值,如果返回负整数,则将a视为小于b;如果返回零,则将a视为等于b;如果返回正整数,则将a视为大于b。通过这个方法的返回值,sort方法可以根据我们定义的比较规则对列表进行排序。例如,可以创建一个Comparator<Integer>对象,重写compare方法,将列表中的元素按照升序进行排序。
相关问题
Collections.sort排序升序
你可以使用Java中的Collections类的sort方法来对集合进行升序排序。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(10);
numbers.add(1);
System.out.println("排序前:" + numbers);
Collections.sort(numbers);
System.out.println("升序排序后:" + numbers);
}
}
```
运行以上代码,输出结果如下:
```
排序前:[5,2, 10, 1]
升序排序后:[1, 2, 5, 10]
```
在示例中,我们创建了一个包含整数的ArrayList集合,并使用Collections.sort方法对其进行升序排序。最终输出了排序后的结果。
请注意,如果要对自定义对象进行排序,需要实现Comparable接口并重写compareTo方法,以指定对象之间的比较规则。
Collections.sort排序顺序
Collections.sort方法默认使用升序排序,即从小到大排列。如果要进行降序排序,可以使用Collections.reverse方法将排序后的结果反转。同时,也可以通过实现Comparator接口来自定义排序规则。例如,以下代码将一个List按照字符串长度从短到长进行排序:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("abcd");
list.add("ab");
list.add("abc");
list.add("a");
Collections.sort(list, new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
System.out.println(list);
}
}
```
输出结果为:[a, ab, abc, abcd]。