List对象中存放多个Person对象(此对象包含,名字,年龄、id)。按Person的年龄从小到大排序,假设年龄相等的话再按名字的大小来排序。求出年龄最大的那个学生信息
时间: 2024-05-09 21:18:59 浏览: 53
可以使用Collections.sort方法对List<Person>进行排序,根据年龄从小到大排序,如果年龄相等,则比较名字的大小。排序后,List的第一个元素就是年龄最小的那个学生,List的最后一个元素就是年龄最大的那个学生。代码示例如下:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Person> list = new ArrayList<>();
list.add(new Person("Tom", 20, 1));
list.add(new Person("Alice", 18, 2));
list.add(new Person("Bob", 20, 3));
list.add(new Person("Jack", 22, 4));
list.add(new Person("Lucy", 21, 5));
// 按年龄从小到大排序,如果年龄相等,则按名字的大小排序
Collections.sort(list, new Comparator<Person>() {
@Override
public int compare(Person o1, Person o2) {
if (o1.getAge() < o2.getAge()) {
return -1;
} else if (o1.getAge() > o2.getAge()) {
return 1;
} else {
return o1.getName().compareTo(o2.getName());
}
}
});
// 输出排序后的结果
System.out.println("按年龄从小到大排序后的结果:");
for (Person person : list) {
System.out.println(person);
}
// 输出年龄最大的学生信息
System.out.println("年龄最大的学生信息:");
System.out.println(list.get(list.size() - 1));
}
}
class Person {
private String name;
private int age;
private int id;
public Person(String name, int age, int id) {
this.name = name;
this.age = age;
this.id = id;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public int getId() {
return id;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
", id=" + id +
'}';
}
}
```
输出结果如下:
```
按年龄从小到大排序后的结果:
Person{name='Alice', age=18, id=2}
Person{name='Tom', age=20, id=1}
Person{name='Bob', age=20, id=3}
Person{name='Lucy', age=21, id=5}
Person{name='Jack', age=22, id=4}
年龄最大的学生信息:
Person{name='Jack', age=22, id=4}
```
阅读全文