java编写一个程序,定义一个person类,包含属性name和age,以及一个比较年龄的大小的方法()。然后从标准输入中读入n个人的姓名和年龄,创建n个person对象并将它们存储在一个array list中。最后对ArrayLast 进行排序,排序规则按照年龄从小到大的顺序,并输出排序后的结果
时间: 2024-03-05 08:53:04 浏览: 84
好的,我理解了你的要求。以下是Java代码实现:
```java
import java.util.*;
class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
@Override
public int compareTo(Person p) {
return Integer.compare(this.age, p.age);
}
}
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
List<Person> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
String name = scanner.next();
int age = scanner.nextInt();
Person person = new Person(name, age);
list.add(person);
}
Collections.sort(list);
for (Person person : list) {
System.out.println(person.getName() + " " + person.getAge());
}
}
}
```
首先定义了一个 `Person` 类,包含姓名和年龄属性,以及实现了 `Comparable` 接口中的比较方法 `compareTo`,用于排序时比较年龄大小。
在 `main` 方法中,从标准输入中读入 n 个人的姓名和年龄,创建 `Person` 对象并存储在 `ArrayList` 中。然后使用 `Collections.sort()` 方法对 `ArrayList` 进行排序,排序规则为按照年龄从小到大的顺序。最后输出排序后的结果,即每个 `Person` 对象的姓名和年龄。
这样就实现了你的要求。
阅读全文