Java中关于ArrayList集合的练习题

目录

题目内容​编辑

完整源码


题目内容

  1. 根据下图所示数据,定义学生类Student,设置对应的字段并进行封装
  2. 在Test中,定义ArrayList集合 ,将上述学生对象实例化,并放入集合,
  3. 定义方法t1,参数为学生类集合,功能是输出显示所有学生信息
  4. 定义方法t2,参数为学生类集合,班级和性别,实现按照班级和性别查询功能。主方法中调用该方法,实现查询网络技术101班级的女生信息
  5. 定义方法t3,实现按姓名模糊查询功能,如果存在符合条件的学生,返回相关学生信息,否则输出没有数据
  6. 定义方法t4, 返回类型为学生类集合,参数为学生类对象,实现功能是修改学生信息。主方法中调用该方法,实现将班级为”电子商务111”的学生修改成电子商务101
  7. 定义方法t5, 返回类型为学生类集合,参数也是学生类集合,实现按照出生日期降序排列的功能

完整源码

Student.java

public class Student {
	private String studentId;  //学号
    private String name;       //姓名
    private String gender;     //性别
    private String birthdate;  //出生日期
    private String major;      //专业名字

    public Student() {
    	
    }
    
    public Student(String studentId, String name, String gender, String birthdate, String major) {
        this.studentId = studentId;
        this.name = name;
        this.gender = gender;
        this.birthdate = birthdate;
        this.major = major;
    }
    
    public void setStudentId(String studentId) {
		this.studentId = studentId;
	}

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

	public void setGender(String gender) {
		this.gender = gender;
	}

	public void setBirthdate(String birthdate) {
		this.birthdate = birthdate;
	}

	public void setMajor(String major) {
		this.major = major;
	}

	public String getStudentId() {
        return studentId;
    }

    public String getName() {
        return name;
    }

    public String getGender() {
        return gender;
    }

    public String getBirthdate() {
        return birthdate;
    }

    public String getMajor() {
        return major;
    }
}

Main.java

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Student> students = new ArrayList<>();
        //2,	在Test中,定义ArrayList集合 ,将上述学生对象实例化,并放入集合,
        students.add(new Student("10101001", "张永峰", "男", "1993-08-01", "电子商务101"));
        students.add(new Student("10101002", "何小丽", "女", "1992-11-03", "电子商务101"));
        students.add(new Student("10101003", "张宇", "男", "1992-08-21", "电子商务101"));
        students.add(new Student("10102001", "王斌", "男", "1991-07-14", "网络技术101"));
        students.add(new Student("10109002", "孙立金", "男", "1993-11-15", "网络技术101"));
        students.add(new Student("10102004", "翁静静", "女", "1992-02-27", "网络技术101"));
        students.add(new Student("11101001", "刘淑芳", "女", "1994-06-10", "电子商务111"));
        students.add(new Student("11101002", "王亚旭", "男", "1993-03-18", "电子商务111"));
        students.add(new Student("11101003", "高磊", "男", "1993-05-11", "电子商务111"));
        
        t1(students);

        List<Student> filteredStudents = t2(students, "网络技术101", "女");
        System.out.println("按照班级和性别查询结果:");
        t1(filteredStudents);

        String searchKeyword = "张";
        List<Student> searchResult = t3(students, searchKeyword);
        if (searchResult.isEmpty()) {
            System.out.println("没有符合条件的学生数据。");
        } else {
            System.out.println("按姓名模糊查询结果:");
            t1(searchResult);
        }

        List<Student> updatedStudents = t4(students, "电子商务111", "电子商务101");
        System.out.println("修改学生信息后的结果:");
        t1(updatedStudents);

        List<Student> sortedStudents = t5(students);
        System.out.println("按出生日期降序排列的结果:");
        t1(sortedStudents);
    }

    //3,	定义方法t1,参数为学生类集合,功能是输出显示所有学生信息
    public static void t1(List<Student> students) {
        System.out.println("学生信息:");
        for (Student student : students) {
            System.out.println("学号:" + student.getStudentId());
            System.out.println("姓名:" + student.getName());
            System.out.println("性别:" + student.getGender());
            System.out.println("出生日期:" + student.getBirthdate());
            System.out.println("专业:" + student.getMajor());
            System.out.println();
        }
    }

    //4,	定义方法t2,参数为学生类集合,班级和性别,实现按照班级和性别查询功能。
    //主方法中调用该方法,实现查询网络技术101班级的女生信息
    public static List<Student> t2(List<Student> students, String major, String gender) {
        List<Student> filteredStudents = new ArrayList<>();
        for (Student student : students) {
            if (student.getMajor().equals(major) && student.getGender().equals(gender)) {
                filteredStudents.add(student);
            }
        }
        return filteredStudents;
    }

    //5,	定义方法t3,实现按姓名模糊查询功能,如果存在符合条件的学生,返回相关学生信息,否则输出没有数据
    public static List<Student> t3(List<Student> students, String searchKeyword) {
        List<Student> searchResult = new ArrayList<>();
        for (Student student : students) {
            if (student.getName().contains(searchKeyword)) {
                searchResult.add(student);
            }
        }
        return searchResult;
    }

    //6,	定义方法t4, 返回类型为学生类集合,参数为学生类对象,实现功能是修改学生信息。
    //主方法中调用该方法,实现将班级为”电子商务111”的学生修改成电子商务101
    public static List<Student> t4(List<Student> students, String originalMajor, String newMajor) {
        List<Student> updatedStudents = new ArrayList<>();
        for (Student student : students) {
            if (student.getMajor().equals(originalMajor)) {
                student = new Student(student.getStudentId(), student.getName(), student.getGender(),
                        student.getBirthdate(), newMajor);
            }
            updatedStudents.add(student);
        }
        return updatedStudents;
    }

    //7,	定义方法t5, 返回类型为学生类集合,参数也是学生类集合,实现按照出生日期降序排列的功能
    public static List<Student> t5(List<Student> students) {
        List<Student> sortedStudents = new ArrayList<>(students);
        Collections.sort(sortedStudents, Comparator.comparing(Student::getBirthdate).reversed());
        return sortedStudents;
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/197452.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的手机官方商城系统

基于SpringBoot的手机官方商城系统 摘要&#xff1a;随着电子商务的发展&#xff0c;网上购物已成为人们普遍的购物方式。与此同时&#xff0c;网上支付也得到了迅速的发展&#xff0c;大有赶超传统支付的趋势。在今天这个信息化程度高、生活节奏快的现代社会&#xff0c;传统…

Unity 关于生命周期函数的一些认识

Unity 生命周期函数主要有以下一些&#xff1a; Awake(): 在脚本被加载时调用。用于初始化对象的状态和引用。 OnEnable(): 在脚本组件被启用时调用。在脚本组件被激活时执行一次&#xff0c;以及在脚本组件被重新激活时执行。 Reset(): 在脚本组件被重置时调用。用于重置脚本…

PCF8591多通道数据读取异常问题

问题描述 PCF8591在循环读取两个通道时&#xff0c;两个通道数据出现交错问题。 例如我们想实现&#xff1a;第一次读取通道一、第二次读取通道二、第三次读取通道一、第四次读取通道二……依次循环 但实际数据&#xff1a;第一次读取的值为0x80、第二次读取的值为通道一的值、…

文件操作在 Python 中的基本用法

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 文件操作是任何编程语言中都至关重要的一部分&#xff0c;Python 提供了简单而强大的文件操作功能&#xff0c;使得读取、写入和处理文件变得非常便捷。本文将详细介绍 Python 中文件操作的基本用法&#xff0c;…

Python自动化测试学习路线【进阶必看】

软件自动化测试的学习步骤 大概步骤如下&#xff1a; 1. 做好手工测试&#xff08;了解各种测试的知识&#xff09;-> 2. 学习编程语言-> 3. 学习Web基础&#xff08;HTML,HTTP,CSS,DOM,Javascript&#xff09;或者 学习Winform -> 4. 学习自动化测试工具 ->5. …

数组中的第 K 个最大元素(C++实现)

数组中的第 K 个最大元素 题目思路代码 题目 数组中的第 K 个最大元素 思路 通过使用优先队列&#xff08;最大堆&#xff09;来找到数组中第k大的元素。通过弹出最大堆中的前k-1个元素&#xff0c;留下堆中的顶部元素作为结果返回。 代码 class Solution { public:int find…

python基于YOLOv7系列模型【yolov7-tiny/yolov7/yolov7x】开发构建钢铁产业产品智能自动化检测识别系统

在前文的项目开发实践中&#xff0c;我们已经以钢铁产业产品缺陷检测数据场景为基准&#xff0c;陆续开发构建了多款目标检测模型&#xff0c;感兴趣的话可以自行阅读即可。 《YOLOv3老矣尚能战否&#xff1f;基于YOLOv3开发构建建钢铁产业产品智能自动化检测识别系统&#xf…

高等数学零基础篇复习笔记

预备章 零基础高等数学入门知识 第一节 集合、运算与关系 第二节 三角函数与反三角函数 三角函数的公式 反三角函数 第三节 常见不等式及数列 划重点 第一章 函数、极限与连续 第一节 函数及函数的初等特性 特殊函数 反函数 函数的初等特性 ①有界性 ②奇偶性 偶函数图像…

【Python 训练营】N_11 模拟进度条

题目 格式化输出进度条&#xff0c;具体格式如下&#xff1a; 分析 需要格式化打印&#xff0c;进度条随时间显示进展&#xff0c;需要用time模块的sleep()函数。 答案 import time # 导入time模块 length 100 # 定义进度长度模块 for i in range(1,length1): # 遍历1&…

ubuntu配置ssh

本教程中的涉及路径的所有命令都是在root用户下的&#xff0c;读者可将路径中的/root更改为/home/用户名 1、重置密码 新安装的系统需要在服务器控制台点击“重置密码”&#xff0c;为root用户设置一个密码 ————————————————————————————————…

C++ string类(二)

insert&#xff1a; erase&#xff1a; 常见用法&#xff1a; int main() {string s1("hello world");string s2("gm");s1.insert(5,"x");cout << s1 << endl;s1.insert(6,s1,0);cout << s1 << endl;s1.insert(0,&qu…

二叉树之推排序(升序)

目录 1.思路1.1大堆的建立方法1.2排序的方法 2.代码实现以及测试代码 1.思路 如何将一个堆进行排序&#xff0c;并变成升序&#xff1f;首先&#xff0c;如果要完成升序&#xff0c;那我们可以建立一个大堆&#xff0c;因为大堆可以选出一个最大的值放在堆的最上面&#xff0c…

云服务器上部署 Web 项目及端口异常处理

文章目录 1. 在云服务器的 MySQL(MariaDB) 中, 建库建表2. 微调代码3. 打包4. 把 war 包 拷贝到云服务器上端口被占用处理 1. 在云服务器的 MySQL(MariaDB) 中, 建库建表 在云服务器中进入 MySQL mysql -u root -p把之前本地写好的 SQL 代码一粘贴即可 例如: -- 这个文件主要…

oracle闪回恢复表数据

oracle闪回恢复表数据 1.打开监听和数据库&#xff0c;进入需要操作的表的所属用户下 [oraclemydb ~]$ lsnrctl start [oraclemydb ~]$ sqlplus / as sysdba SQL> startup SQL> conn test/123456 SQL> select * from test1&#xff1b;2.删除任意数据&#xff1a; …

「计算机网络」Cisco Packet Tracker计算机网络仿真器的使用

介绍 Cisco Packet Tracker&#xff1a;网络仿真工具&#xff0c;用于模拟网络配置。 &#xff08;一&#xff09;通过 带外管理 配置交换机&#xff08;Switch&#xff09; 带外&#xff1a;Out-of-Band, OOB写在前面&#xff1a;如何打开Console页面 1、模式转换 用户执行模…

如何用postman实现接口自动化测试

postman使用 开发中经常用postman来测试接口&#xff0c;一个简单的注册接口用postman测试&#xff1a; 接口正常工作只是最基本的要求&#xff0c;经常要评估接口性能&#xff0c;进行压力测试。 postman进行简单压力测试 下面是压测数据源&#xff0c;支持json和csv两个格…

Android开源框架--Dagger2详解

功名只向马上取&#xff0c;真是英雄一丈夫 一&#xff0c;定义 我们知道在一个类中&#xff0c;通常会定义其他类型的变量&#xff0c;这个变量就是我们所说的“依赖“。 对一个类的变量进行初始化&#xff0c;有两种方式。第一种&#xff0c;这个类自己进行初始化&#xff…

Elasticsearch底层原理分析——新建、索引文档

es版本 8.1.0 重要概念回顾 Elasticsearch Node的角色 与下文流程相关的角色介绍&#xff1a; Node Roles配置主要功能说明masternode.roles: [ master ]有资格参与选举成为master节点&#xff0c;从而进行集群范围的管理工作&#xff0c;如创建或删除索引、跟踪哪些节点是…

计算机毕业设计php+bootstrap小区物业管理系统

意义&#xff1a;随着我国经济的发展和人们生活水平的提高&#xff0c;住宅小区已经成为人们居住的主流&#xff0c;人们生活质量提高的同时&#xff0c;对小区物业管理的要求也越来越高&#xff0c;诸如对小区的维修维护&#xff0c;甚至对各项投诉都要求小区管理者做得好&…

Django请求生命周期流程

浏览器发起请求。 先经过网关接口&#xff0c;Django自带的是wsgiref&#xff0c;请求来的时候解析封装&#xff0c;响应走的时候打包处理&#xff0c;这个wsgiref模块本身能够支持的并发量很少&#xff0c;最多1000左右&#xff0c;上线之后会换成uwsgi&#xff0c;并且还会加…