使用自定义Comparator时如何进行数组排序后的判断?
时间: 2024-10-14 20:11:26 浏览: 15
当你需要使用自定义的比较规则对对象数组进行排序时,可以创建一个实现了`Comparator<T>`接口的类,提供`compare()`方法来定义元素之间的比较逻辑。例如,如果你想按照某个字段的值(比如姓名的首字母)进行升序排序,可以这样做:
```java
import java.util.Arrays;
import java.util.Comparator;
class NameComparator implements Comparator<Person> {
@Override
public int compare(Person p1, Person p2) {
String name1 = p1.getName();
String name2 = p2.getName();
return name1.compareTo(name2);
}
}
...
Person[] people = ... // 你的人员数组
Arrays.sort(people, new NameComparator());
boolean isSorted = true;
for (int i = 0; i < people.length - 1; i++) {
if (!new NameComparator().compare(people[i], people[i + 1]) <= 0) {
isSorted = false;
break;
}
}
// isSorted现在表示数组是否按照NameComparator规则升序排列
```
这里首先对数组进行排序,然后再次遍历判断。如果连续两个元素的比较结果大于0,说明它们的名称顺序不符合升序,`isSorted`就会变为false。
阅读全文