Java 自定义比较器 Comparator 的底层实现原理是通过重写其中的 compare() 方法来实现的。
在 Java 中,Comparator 是一个接口,它只有一个方法 compare(),该方法接受两个参数,返回一个整数。如果第一个参数小于第二个参数,则返回一个负数;如果第一个参数等于第二个参数,则返回 0;如果第一个参数大于第二个参数,则返回一个正数。
例如,下面是一个自定义比较器的简单示例,用于比较两个字符串的长度:
import java.util.Comparator;
public class StringLengthComparator implements Comparator<String> {
@Override
public int compare(String s1, String s2) {
return s1.length() - s2.length();
}
}
然后,我们可以使用这个自定义比较器来排序字符串列表:
import java.util.Collections;
import java.util.List;
List<String> strings = ...;
Collections.sort(strings, new StringLengthComparator());
这样,字符串列表就会按照字符串长度从小到大的顺序排序。