Java中关于ArrayList集合的练习题

news2024/9/23 3:27:48

目录

题目内容​编辑

完整源码


题目内容

  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;
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用C语言操作kafka

文章目录 1 安装librdkafka2 开启kafka相关服务2.1 启动zookeeper2.2 启动Kafka2.3 创建topic 3 c语言操作kafka的范例3.1 消费者3.2 生产者3.3 生产者和消费者的交互 总结 1 安装librdkafka git clone https://github.com/edenhill/librdkafka.git cd librdkafka git checkou…

linux用户身份切换su和 sudo

su 切换root&#xff0c;但是&#xff0c;环境变量是之前用户的 可以看到利用su切换&#xff0c;根目录还是pro1的 su - 连同环境一起切换成root&#xff0c;切换后工作目录都不一样了&#xff0c;看输入内容左侧信息&#xff0c;和第一个图片比较 -c仅执行一次命令&#xff0…

docker限制容器内存的方法

在服务器中使用 docker 时&#xff0c;如果不对 docker 的可调用内存进行限制&#xff0c;当 docker 内的程序出现不可预测的问题时&#xff0c;就很有可能因为内存爆炸导致服务器主机的瘫痪。而对 docker 进行限制后&#xff0c;可以将瘫痪范围控制在 docker 内。 因此&#…

RK3568笔记六:基于Yolov8的训练及部署

若该文为原创文章&#xff0c;转载请注明原文出处。 基于Yolov8的训练及部署&#xff0c;参考鲁班猫的手册训练自己的数据集部署到RK3568,用的是正点的板子。 1、 使用 conda 创建虚拟环境 conda create -n yolov8 python3.8 ​ conda activate yolov8 2、 安装 pytorch 等…

Deep Image Prior

深度图像先验 论文链接&#xff1a;https://sites.skoltech.ru/app/data/uploads/sites/25/2018/04/deep_image_prior.pdf 项目链接&#xff1a;https://github.com/DmitryUlyanov/deep-image-prior Abstract 深度卷积网络已经成为一种流行的图像生成和恢复工具。一般来说&a…

摇滚史密斯2014重置版外接声卡

摇滚史密斯2014重置版外接声卡 前提 由于rs_asio是通过模拟原厂线的方法来使游戏可以支持声卡的&#xff0c;因此&#xff0c;声卡的采样频率需要满足原厂线要求&#xff0c;即采样率可以设置为 48000 Hz。 我使用的是 Sonic Cube 这款声卡&#xff0c;非常幸运&#xff0c;…

微服务--05--配置管理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 配置管理这些问题都可以通过统一的配置管理器服务解决。而Nacos不仅仅具备注册中心功能&#xff0c;也具备配置管理的功能&#xff1a; 1.配置共享1.1.添加共享配置…

【mmseg】ValueError: Only one of `max_epochs` or `max_iters` can be set.报错解决

目录 &#x1f49c;&#x1f49c;1背景 ❤️ ❤️2分析 &#x1f525;2.1config查看 &#x1f525;2.2BaseRunner基类 &#x1f49a;&#x1f49a;3解决 &#x1f525;3.1按照epoch &#x1f525;3.2按照iters 整理不易&#xff0c;欢迎一键三连&#xff01;&#xff01…

Kubernetes入门学习(上)

文章目录 Kubernetes入门学习&#xff08;上&#xff09;介绍云原生 Kubernetes架构基础概念Kubernetes架构控制平面组件Node组件 组件关系 安装Kubernetes基本对象和操作Pod&#xff08;容器集&#xff09;Deployment(部署)与ReplicaSet(副本集)Service&#xff08;服务&#…

【工业智能】Solutions

各类问题对应的解决方案 工艺参数推荐APC 排产调度智能算法强化学习 运筹优化空压机群控 预测 工艺参数推荐 APC 排产调度 智能算法 遗传算法 强化学习 DDQN 运筹优化 空压机群控 MIP混合整数规划 能耗优化 预测 电池容量预测 时序预测&#xff0c;回归预测 点击剩余…

python基础练习题库实验5

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/6058fb4b66994aed838f920f7fe75706.png)题目4代码实验结果题目总结题目1 编写一个程序,使用while循环语句和字符串格式显示以下精确输出。 例如: …

企企通相继出席首届百家新锐企业融通创新交流会与采购数字化创新沙龙,持续深化数字赋能

近期&#xff0c;企企通受邀分别参加了广州、上海业界重磅活动&#xff0c;针对新形势下企业数字化采购升级的新技术与新思路、产业链上下游协同发展等进行探讨&#xff0c;赋能数字化信息技术产业生态发展&#xff0c;并对各方主体如何协作共赢助推企业数字化发展建言献策。 0…

7.Spring源码解析-parseBeanDefinitions解析beanDefinitions

默认解析的命名空间由parseDefaultElement方法去处理&#xff0c;即import, alias, bean, 嵌套的beans四种元素 import 写法示例: <import resource"CTIContext.xml" /> <import resource"customerContext.xml" /> importBeanDefinitionRe…

idea 2023使用技巧(一)

IntelliJ IDEA在业界被公认为最好的java开发工具之一。它能给你良好的开发体验。 idea版本号为2023.2.5。 1 基础操作 1.1索引 idea首次加载项目时&#xff0c;都会创建索引&#xff0c;创建索引的时间跟项目的文件多少成正比。idea的缓存和索引主要是用来加快文件查询&…

Python入职某新员工大量使用Lambda表达式,却被老员工喷是屎山

Python中Lambda表达式是一种简洁而强大的特性,其在开发中的使用优缺点明显,需要根据具体场景权衡取舍。 Lambda表达式的优点之一是它的紧凑语法,适用于一些短小而简单的函数。这种形式使得代码更为精炼,特别在一些函数式编程场景中,Lambda表达式可以提高代码的表达力。此外…

平凯星辰 TiDB 获评 “2023 中国金融科技守正创新扬帆计划” 十佳优秀实践奖

11 月 10 日&#xff0c;2023 金融街论坛年会同期举办了“第五届成方金融科技论坛——金融科技守正创新论坛”&#xff0c;北京金融产业联盟发布了“扬帆计划——分布式数据库金融应用研究与实践优秀成果”&#xff0c; 平凯星辰提报的实践报告——“国产 HTAP 数据库在金融规模…

CMake构建一个转换为3d tile的开源代码成功

之前CMake构建一个转换为3d tile的开源代码&#xff0c;生成解决方案之后&#xff0c;从VS2019打开&#xff1b; 总是报一个错误&#xff0c;跟 mocs_compilation_Debug.cpp 这个QT相关文件有关&#xff0c;它生成的obj&#xff0c;总是报模块计算机x64和目标计算机x86冲突&am…

ELK+Filebeat

Filebeat概述 1.Filebeat简介 Filebeat是一款轻量级的日志收集工具&#xff0c;可以在非JAVA环境下运行。 因此&#xff0c;Filebeat常被用在非JAVAf的服务器上用于替代Logstash&#xff0c;收集日志信息。实际上&#xff0c;Filebeat几乎可以起到与Logstash相同的作用&…

涵盖多种功能,龙讯旷腾Module第一期:物质结构

Module是什么 在PWmat的基础功能上&#xff0c;我们针对用户的使用需求开发了一些顶层模块&#xff08;Module&#xff09;。这些Module中的一部分是与已有的优秀工具的接口&#xff0c;一部分是以PWmat的计算结果为基础得到实际需要的物理量&#xff0c;一部分则是为特定的计…

小白备战蓝桥杯:Java基础语法

一、注释 IDEA注释快捷键&#xff1a;Ctrl / 单行注释&#xff1a; //注释信息 多行注释&#xff1a; /* 注释信息 */ 二、字面量 常用数据&#xff1a;整数、小数、字符串&#xff08;双引号&#xff09;、字符&#xff08;单引号&#xff09;、布尔值&#xff08;tr…