集合部分小实验

集合框加小实验Demo

写一个 Java 程序,主要功能是创建一个包含学生信息的列表,并根据学生的数学成绩、年龄和出生日期进行筛选和输出。下面是对代码的分析:

  1. 创建学生列表:

    代码首先创建了一个 ArrayList 对象 studentList,用于存储 Student 对象的列表。然后使用 SimpleDateFormat 对象 sdf 解析日期字符串,并向 studentList 中添加了若干个 Student 对象,每个对象代表一个学生的信息。

  2. 筛选学生信息:

    接下来创建了三个空的 ArrayList 对象 studentListMath、studentListAge 和 studentListBirth,用于存储符合条件的学生信息。然后使用循环遍历 studentList 中的每个学生对象,根据数学成绩、年龄和出生日期进行筛选,并将符合条件的学生信息分别存储到对应的列表中。

  3. 输出筛选结果:

    最后,循环遍历输出了符合条件的学生信息。分别输出数学成绩大于80的学生、年龄大于18的学生以及出生日期在2000-05-20后的学生的信息。

    分析:
    对于数学成绩的筛选,可以使用了 BigDecimal 类的 compareTo 方法进行比较。
    对于年龄和出生日期的筛选,可以使用了普通的比较操作符(>、after)进行判断。

代码实现

java 复制代码
package Collection.Work1.Test1;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

package Collection.Work1.Test1;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

public class Demo2 {
    public static void main(String[] args) throws ParseException {
        List<Student> studentList = new ArrayList<>();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        studentList.add(new Student("aa0", 22, sdf.parse("2023-11-11"), new BigDecimal(98), new BigDecimal(97), new BigDecimal(96)));
        studentList.add(new Student("aa1", 32, sdf.parse("2003-11-11"), new BigDecimal(88), new BigDecimal(87), new BigDecimal(86)));
        studentList.add(new Student("aa2", 12, sdf.parse("2013-11-11"), new BigDecimal(70), new BigDecimal(77), new BigDecimal(76)));
        studentList.add(new Student("aa3", 42, sdf.parse("2023-10-11"), new BigDecimal(60), new BigDecimal(67), new BigDecimal(66)));
        studentList.add(new Student("aa4", 12, sdf.parse("1963-12-11"), new BigDecimal(50), new BigDecimal(57), new BigDecimal(56)));
        studentList.add(new Student("aa5", 12, sdf.parse("1973-01-11"), new BigDecimal(40), new BigDecimal(47), new BigDecimal(46)));
        studentList.add(new Student("aa6", 12, sdf.parse("1693-11-11"), new BigDecimal(30), new BigDecimal(37), new BigDecimal(36)));
        studentList.add(new Student("aa7", 12, sdf.parse("1977-10-11"), new BigDecimal(28), new BigDecimal(27), new BigDecimal(26)));
        studentList.add(new Student("aa8", 82, sdf.parse("2000-10-11"), new BigDecimal(99), new BigDecimal(27), new BigDecimal(26)));

        List<Student> studentListMath = new ArrayList<>();
        List<Student> studentListAge = new ArrayList<>();
        List<Student> studentListBirth = new ArrayList<>();

        BigDecimal math80 = new BigDecimal(80);
        Date date2000 = sdf.parse("2000-05-20");
        for (Student student : studentList) {
            BigDecimal math1 = student.getMath();
            //找出大于80分的student

            if (math1.compareTo(math80) > 0) {  //大于0 第一个比第二大
                studentListMath.add(student);
            }
            //找出年龄大于18的student
            if (student.getAge() > 18) {
                studentListAge.add(student);
            }
            //找出出生年月大于2000-05-20的student
            if (student.getBirth().after(date2000)) { //after 之后,before之前
                studentListBirth.add(student);
            }
        }

        System.out.print("数学成绩大于80的人有: " + studentListMath.size() + "位,分别是:");
        for (Student student : studentListMath) {
            System.out.print(student.getName() + "成绩为:" + student.getMath() + "  ");
        }
        System.out.println();
        System.out.print("年龄大于18的人有: " + studentListAge.size() + "位,分别是:");
        for (Student student : studentListAge) {
            System.out.print(student.getName() + "年龄为:" + student.getAge() + "  ");
        }
        System.out.println();
        System.out.print("出生年纪在2000-05-20后的人有: " + studentListBirth.size() + "位,分别是:");
        for (Student student : studentListBirth) {
            System.out.print(student.getName() + "出生时间为:" + sdf.format(student.getBirth()) + "  ");
        }


    }
}
  • Student类
java 复制代码
- package Collection.Work1.Test1;

import java.math.BigDecimal;
import java.util.Date;

public class Student {
    private String name;
    private Integer age;
    private Date birth;
    private BigDecimal math;
    private BigDecimal chinese;
    private BigDecimal englisth;

    public Student() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public BigDecimal getMath() {
        return math;
    }

    public void setMath(BigDecimal math) {
        this.math = math;
    }

    public BigDecimal getChinese() {
        return chinese;
    }

    public void setChinese(BigDecimal chinese) {
        this.chinese = chinese;
    }

    public BigDecimal getEnglisth() {
        return englisth;
    }

    public void setEnglisth(BigDecimal englisth) {
        this.englisth = englisth;
    }

    public Student(String name, Integer age, Date birth, BigDecimal math, BigDecimal chinese, BigDecimal englisth) {
        this.name = name;
        this.age = age;
        this.birth = birth;
        this.math = math;
        this.chinese = chinese;
        this.englisth = englisth;
    }


}
相关推荐
daopuyun4 分钟前
GB/T34944-2017 《Java语言源代码漏洞测试规范》解读——安全功能
java·开发语言·安全
qh0526wy15 分钟前
pyqt5冻结+分页表
开发语言·python·qt
井底哇哇21 分钟前
Apline linux 安装scikit-learn 过程记录
python·机器学习·scikit-learn
hjxxlsx22 分钟前
探索 C++ 自定义函数的深度与广度
开发语言·c++
海棠AI实验室43 分钟前
机器学习基础算法 (二)-逻辑回归
人工智能·python·机器学习
罗政1 小时前
PDF书籍《手写调用链监控APM系统-Java版》第12章 结束
java·开发语言·pdf
匹马夕阳1 小时前
详细对比JS中XMLHttpRequest和fetch的使用
开发语言·javascript·ecmascript
月巴月巴白勺合鸟月半1 小时前
一个特别的串口通讯
开发语言·串口通讯
乄北城以北乀1 小时前
第1章 R语言中的并行处理入门
开发语言·分布式·r语言
全栈老实人_1 小时前
农家乐系统|Java|SSM|VUE| 前后端分离
java·开发语言·tomcat·maven