编写一个程序, 定义一个Person类,包含属性name和age, 以及一个比较年龄大小的方 法compareAge()。 然后从标准输入中读入n个人的姓名和年龄, 创建n个Person对象并 将它们存储在一个ArrayList中。 最后对ArrayList进行排序, 排序规则是按照年龄从小到大的顺序,并输出排序后的结果
时间: 2024-03-02 22:53:13 浏览: 68
好的,我可以帮你实现这个程序。以下是代码:
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;
class Person implements Comparable<Person> {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int compareAge(Person p) {
return this.age - p.age;
}
@Override
public int compareTo(Person p) {
return compareAge(p);
}
@Override
public String toString() {
return name + " " + age;
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
ArrayList<Person> persons = new ArrayList<>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
int age = scanner.nextInt();
Person p = new Person(name, age);
persons.add(p);
}
Collections.sort(persons);
for (Person p : persons) {
System.out.println(p);
}
}
}
```
在这个程序中,我们首先定义了一个Person类,其中包含了name和age两个属性,以及一个compareAge方法用于比较两个Person对象的年龄大小。由于我们需要对ArrayList进行排序,因此我们实现了Comparable接口,并重写了compareTo方法,让其调用compareAge方法进行比较。
在程序的主函数中,我们先读入n个Person对象的信息,然后将它们存储在一个ArrayList中。接着,我们调用Collections类的sort方法对ArrayList进行排序,排序规则是按照年龄从小到大的顺序。最后,我们遍历ArrayList并输出排序后的结果。
你可以试着运行一下这个程序,输入一些Person对象的信息,看看输出结果是否符合预期。
阅读全文