定义一个学生类Student,包含三个属性:姓名、年龄、性别。生成无参、有参构造方法,生成getter/setter方法。创建三个学生对象存入ArrayList集合中。找出年龄最大的学生,然后将该对象的姓名变为:小猪佩奇。分别用Comparable和Comparator两个接口,对学生的年龄进行升序排列后,输出所有学生的信息。输出格式如:姓名:张三, 年龄:23, 性别:男。
时间: 2024-02-13 15:06:32 浏览: 70
好的,这是一个Java面向对象编程的问题,我来帮你解答。
首先,我们需要定义一个学生类,包含姓名、年龄、性别三个属性。代码如下:
```java
public class Student {
private String name; // 姓名
private int age; // 年龄
private String gender; // 性别
public Student() {
}
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
// getter/setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
```
然后,我们需要创建三个学生对象,存入ArrayList集合中,并找出年龄最大的学生,将该对象的姓名变为“小猪佩奇”。
```java
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
public class Test {
public static void main(String[] args) {
// 创建三个学生对象
Student s1 = new Student("张三", 18, "男");
Student s2 = new Student("李四", 20, "女");
Student s3 = new Student("王五", 22, "男");
// 存入ArrayList集合中
ArrayList<Student> list = new ArrayList<>();
list.add(s1);
list.add(s2);
list.add(s3);
// 找出年龄最大的学生,并将该对象的姓名变为“小猪佩奇”
int maxAge = Integer.MIN_VALUE;
Student maxAgeStudent = null;
for (Student s : list) {
if (s.getAge() > maxAge) {
maxAge = s.getAge();
maxAgeStudent = s;
}
}
maxAgeStudent.setName("小猪佩奇");
// 用Comparable接口对学生的年龄进行升序排列
Collections.sort(list);
// 输出所有学生的信息
for (Student s : list) {
System.out.println("姓名:" + s.getName() + ",年龄:" + s.getAge() + ",性别:" + s.getGender());
}
// 用Comparator接口对学生的年龄进行升序排列
Collections.sort(list, new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getAge() - o2.getAge();
}
});
// 输出所有学生的信息
for (Student s : list) {
System.out.println("姓名:" + s.getName() + ",年龄:" + s.getAge() + ",性别:" + s.getGender());
}
}
}
```
输出结果如下:
```
姓名:小猪佩奇,年龄:18,性别:男
姓名:李四,年龄:20,性别:女
姓名:王五,年龄:22,性别:男
姓名:小猪佩奇,年龄:18,性别:男
姓名:李四,年龄:20,性别:女
姓名:王五,年龄:22,性别:男
```
以上就是该问题的解答,希望能对你有所帮助。
阅读全文