Comparator 升序排列怎么重写
时间: 2023-10-13 16:13:50 浏览: 41
要重写 Comparator 接口进行升序排列,需要实现 Comparator 接口的 compare 方法,该方法接收两个参数,返回一个 int 类型的值。
比较两个对象的大小时,若第一个对象小于第二个对象,则返回负数,若第一个对象大于第二个对象,则返回正数,若两个对象相等,则返回 0。
下面是一个示例代码,比较两个整数的大小:
```
public class MyComparator implements Comparator<Integer> {
@Override
public int compare(Integer o1, Integer o2) {
return o1 - o2;
}
}
```
使用示例:
```
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(1);
list.add(2);
Collections.sort(list, new MyComparator());
System.out.println(list); // 输出 [1, 2, 3]
```
在上面的示例中,MyComparator 类实现了 Comparator 接口,重写了 compare 方法,比较两个整数的大小并返回结果。在使用 Collections.sort 方法对 List 进行排序时,传入 MyComparator 的实例,即可按照升序排列。
相关问题
按字符串长度升序排列java
可以使用Java中的Collections.sort()方法和Comparator接口来实现按字符串长度升序排列。下面是一个示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class SortStringsByLength {
public static void main(String[] args) {
ArrayList<String> strings = new ArrayList<String>();
strings.add("abc");
strings.add("ab");
strings.add("abcd");
strings.add("a");
Collections.sort(strings, new Comparator<String>() {
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
});
for (String s : strings) {
System.out.println(s);
}
}
}
```
输出结果为:
```
a
ab
abc
abcd
```
在这个示例中,我们首先创建一个包含一些字符串的ArrayList。然后,我们使用Collections.sort()方法来对这些字符串进行排序。为了按照字符串长度升序排列,我们实现了一个Comparator接口,并重写了其中的compare()方法。在compare()方法中,我们将两个字符串的长度相减,得到的结果即为它们的长度差,这个值将会被用来决定它们在排序后的位置。最后,我们遍历排序后的ArrayList,将其中的每个字符串打印出来。
java 将 list里的对象按照startTime进行升序排列
可以通过实现Comparator接口来对list里的对象按照startTime进行升序排列,具体代码如下:
```
class CustomComparator implements Comparator<YourObject> {
@Override
public int compare(YourObject o1, YourObject o2) {
return o1.getStartTime().compareTo(o2.getStartTime());
}
}
List<YourObject> list = new ArrayList<YourObject>();
//...添加对象到list中
Collections.sort(list, new CustomComparator());
```
其中,`YourObject`是你自定义的对象,其中包含一个`startTime`属性,`getStartTime()`方法返回该属性的值。`CustomComparator`实现了`Comparator`接口,重写了`compare()`方法,使得比较两个`YourObject`对象时,按照它们的`startTime`属性进行升序排列。最后通过`Collections`的`sort()`方法对list进行排序。