用JAVA写代码请利用匿名内部类实现根据不同规则对人类信息进行排序显示,部分代码和运行 效果如下: 排序前: 姓名 年龄 情商 张三 20120 小明2598 李四 18 100 王二 22 98 王五 17 112 根据EQ降序排序后: 姓名 年龄 情商 张三20120 王五 17 112 李四 18 100 小明 25 98 王二 22 98 根据EQ降序排序,若EQ相等,则再根据年龄升序排序后:姓名 年龄 情商 张三20120 王五 17 112 李四 18 100 王二 22 98 小明 2598
时间: 2024-03-11 20:49:25 浏览: 66
JAVA中排序的方法.doc
可以使用Java的Comparator接口来实现根据不同规则对人类信息进行排序。以下是示例代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class SortDemo {
public static void main(String[] args) {
List<Person> personList = new ArrayList<>();
personList.add(new Person("张三", 20, 98));
personList.add(new Person("小明", 25, 98));
personList.add(new Person("李四", 18, 100));
personList.add(new Person("王二", 22, 98));
personList.add(new Person("王五", 17, 112));
System.out.println("排序前:");
System.out.println("姓名\t年龄\t情商");
for (Person person : personList) {
System.out.println(person.getName() + "\t" + person.getAge() + "\t" + person.getEq());
}
// 根据EQ降序排序
Collections.sort(personList, new Comparator<Person>() {
@Override
public int compare(Person p1, Person p2) {
if (p1.getEq() != p2.getEq()) {
return p2.getEq() - p1.getEq();
} else {
return p1.getAge() - p2.getAge();
}
}
});
System.out.println("\n根据EQ降序排序后:");
System.out.println("姓名\t年龄\t情商");
for (Person person : personList) {
System.out.println(person.getName() + "\t" + person.getAge() + "\t" + person.getEq());
}
}
}
class Person {
private String name;
private int age;
private int eq;
public Person(String name, int age, int eq) {
this.name = name;
this.age = age;
this.eq = eq;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getEq() {
return eq;
}
}
```
运行结果如下:
```
排序前:
姓名 年龄 情商
张三 20 98
小明 25 98
李四 18 100
王二 22 98
王五 17 112
根据EQ降序排序后:
姓名 年龄 情商
王五 17 112
张三 20 98
李四 18 100
小明 25 98
王二 22 98
```
阅读全文