集合部分小实验

集合框加小实验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;
    }


}
相关推荐
GFCGUO5 分钟前
ubuntu18.04运行OpenPCDet出现的问题
linux·python·学习·ubuntu·conda·pip
快乐就好ya31 分钟前
Java多线程
java·开发语言
CS_GaoMing1 小时前
Centos7 JDK 多版本管理与 Maven 构建问题和注意!
java·开发语言·maven·centos7·java多版本
985小水博一枚呀2 小时前
【深度学习基础模型】神经图灵机(Neural Turing Machines, NTM)详细理解并附实现代码。
人工智能·python·rnn·深度学习·lstm·ntm
2401_858120532 小时前
Spring Boot框架下的大学生就业招聘平台
java·开发语言
转调2 小时前
每日一练:地下城游戏
开发语言·c++·算法·leetcode
Java探秘者2 小时前
Maven下载、安装与环境配置详解:从零开始搭建高效Java开发环境
java·开发语言·数据库·spring boot·spring cloud·maven·idea
2303_812044462 小时前
Bean,看到P188没看了与maven
java·开发语言
秋夫人3 小时前
idea 同一个项目不同模块如何设置不同的jdk版本
java·开发语言·intellij-idea
不穿格子衬衫3 小时前
常用排序算法(下)
c语言·开发语言·数据结构·算法·排序算法·八大排序