ArrayList存放学生对象及排序

编写一个学生类,包含姓名、学号、年龄、专业四个属性,并完善get /set方法、构造方法、toString()方法。

toString()方法参考如下:

public String toString() {

return "Student [name=" + name + ", id=" + id + ", age=" + age + ", major=" + major + "]";

}

有三位学生的信息,参考代码如下

Student s1=new Student("zhang",1401, 20, "computer");

Student s2=new Student("liu",1402,19,"law");

Student s3=new Student("wang",1403,17,"mechanical");

请完成以下内容:

1)创建一个ArrayList对象list,将上述三位学生加入到集合中,并遍历list,显示学生信息;

2)在学生 “liu”的前面插入一个学生,学生的信息如下:("li",1409,16,"english")

    并再一次遍历list,确认学生“li”已经被正确插入。

3)根据学生的年龄,按照年龄从小到大的顺序对这4位学生进行排序,并再次遍历,显示学生信息。

学生类:

public class Student {
    private String name;
    private int id;
    private int age;
    private String major;

    public Student(String name,int id,int age,String major){
        this.name=name;
        this.id=id;
        this.age=age;
        this.major=major;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getMajor() {
        return major;
    }
    public void setMajor(String major) {
        this.major = major;
    }

    public String toString() {

        return "Student [name=" + name + ", id=" + id + ", age=" + age + ", major=" + major + "]";

    }

}
MyComparator类:重写比较器
import java.util.Comparator;

public class MyComparator implements Comparator<Student> {
    @Override
    public int compare(Student o1, Student o2) {
        return o1.getAge()-o2.getAge();
    }
}

测试类:StudentTest

import java.util.ArrayList;
import java.util.Collections;

public class StudentTest {
    public static void main(String[] args) {
        ArrayList<Student> list = new ArrayList<>();
        list.add(new Student("zhang",1401,20,"computer"));
        list.add(new Student("liu",1402,19,"law"));
        list.add(new Student("wang",1403,17,"mechanical"));
        for(Student stu:list){
            System.out.println(stu);
        }

        System.out.println("---------------");
        list.add(1,new Student("li",1409,16,"english"));
        for(Student stu:list){
            System.out.println(stu);
        }

        System.out.println("---------------");
        MyComparator mc = new MyComparator();
        Collections.sort(list,mc);

        for(Student stu:list){
            System.out.println(stu);
        }
    }
}

输出样例:

Student [name=zhang, id=1401, age=20, major=computer]

Student [name=liu, id=1402, age=19, major=law]

Student [name=wang, id=1403, age=17, major=mechanical]

Student [name=zhang, id=1401, age=20, major=computer]

Student [name=li, id=1409, age=16, major=english]

Student [name=liu, id=1402, age=19, major=law]

Student [name=wang, id=1403, age=17, major=mechanical]

Student [name=li, id=1409, age=16, major=english]

Student [name=wang, id=1403, age=17, major=mechanical]

Student [name=liu, id=1402, age=19, major=law]

Student [name=zhang, id=1401, age=20, major=computer]

  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值