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”的学生修改成电子商务101public 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.mzph.cn/news/179152.shtml

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

相关文章

js数组map()的用法

JavaScript Array map() 方法 先说说这个方法浏览器的支持&#xff1a; 支持五大主流的浏览器&#xff0c; 特别注意&#xff1a;IE 9 以下的浏览器不支持&#xff0c;只支持IE 9以上的版本的浏览器 特别注意&#xff1a;IE 9 以下的浏览器不支持&#xff0c;只支持IE 9以上的…

从零开始的c语言日记day37——数组指针练习

一、 取地址数组储存在了*p里&#xff0c;里面储存的是整个数组的地址但本质也是第一个元素的地址解引用后1为4个字节所以就可以打印数组了。但一般不用这种方法 这样更方便一些 打印多维数组 如果不用这样传参&#xff0c;用指针传参怎么做呢&#xff1f; Main里函数的arr表示…

QT基础实践之简易计算器

文章目录 简易计算器源码分享演示图第一步 界面设计第二步 设置槽第三步 计算功能实现 简易计算器 源码分享 链接&#xff1a;https://pan.baidu.com/s/1Jn5fJLYOZUq77eNJ916Kig 提取码&#xff1a;qwer 演示图 第一步 界面设计 这里直接用了ui界面&#xff0c;如果想要自己…

TiDB 7.x 源码编译之 TiDB Server 篇,及新特性详解

本文将介绍如何编译 TiDB Server 源码。以及阐释 TiDB Server 7.x 的部分新特性。 TiDB v7.5.0 LTS 计划于 2023 年 11 月正式 Release&#xff0c;目前代码虽未冻结&#xff0c;但已经可以看到 Alpha 版本的 Code 了&#xff0c;本文代码将以 v7.5.0-alpha 为基准。 TiDB Se…

filebeat 日志收集工具

elk&#xff1a;filebeat日志收集工具和logstash相同。 filebeat是一个轻量级的日志收集工具&#xff0c;所使用的系统资源比logstash部署和启动时使用的资源要小的多。 filebeat可以运行在非Java环境。他可以代理logtash在非java环境上收集日志。 filebeat无法实现数据的过…

设计师福利!2024在线图标设计网站推荐,不容错过的宝藏!

在当今竞争激烈的商业环境中&#xff0c;公司或个人品牌的视觉识别元素已经成为区分你和竞争对手的关键因素之一。一个独特而引人注目的标志可以深深扎根于人们的心中&#xff0c;并在消费者心中建立一个强烈的品牌印象。如果你正在寻找合适的工具来创建或改进你的标志&#xf…

WIFI HaLow技术引领智能互联,打破通信限制

在过去十年里&#xff0c;WIFI技术已在家庭和企业中建立起了庞大的网络&#xff0c;连接了数十亿智能互联设备&#xff0c;促进了信息的迅速传递。然而&#xff0c;当前的WIFI标准存在一些挑战&#xff0c;包括协议范围的限制和整体功能的受限&#xff0c;导致在较远距离进行通…

02-鸿蒙学习之4.0todoList练习

02-鸿蒙学习之4.0todoList练习 代码 /*** 1:组件必须使用Component装饰* 2.Entry 装饰哪个组件&#xff0c;哪个组件就呈现在页面上* 3.被Entry 装饰的入口组件。build&#xff08;&#xff09;必须有且仅有一个根 ** 容器 ** 组件* 其他的自定义组件&#xff0c;build() 中…

C++学习——类和对象(上)

C学习——类和对象 一、面向对象和面向过程的初步认识二、什么是类 一、面向对象和面向过程的初步认识 我们之前学习了C语言&#xff0c;我们知道 ① C语言&#xff1a;C语言是一门面向过程的语言&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函…

Anakki个人网站持续更新中

Anakki-World github&#xff1a; GitHub - Anyuei/anakki 欢迎注册&#xff0c;成为我的盆友

Android Bitmap保存成至手机图片文件,Kotlin

Android Bitmap保存成至手机图片文件&#xff0c;Kotlin fun saveBitmap(name: String?, bm: Bitmap) {val savePath Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString()if (!Files.exists(Paths.get(savePath))) {Log.d("保存文…

用通俗的方式讲解Transformer:从Word2Vec、Seq2Seq逐步理解到GPT、BERT

直到今天早上&#xff0c;刷到CSDN一篇讲BERT的文章&#xff0c;号称一文读懂&#xff0c;我读下来之后&#xff0c;假定我是初学者&#xff0c;读不懂。 关于BERT的笔记&#xff0c;其实一两年前就想写了&#xff0c;迟迟没动笔的原因是国内外已经有很多不错的资料&#xff0…

Appium自动化如果出现报错怎么办?这么做确实解决问题

解决通过appium的inspector功能无法启动app的原因 在打开appium-desktop程序&#xff0c;点击inspector功能&#xff0c;填写app的配置信息&#xff0c;启动服务提示如下&#xff1a; 报错信息&#xff1a; An unknown server-side error occurred while processing the com…

【ShardingSphere专题】SpringBoot整合ShardingSphere(一、数据分片入门及实验)

目录 前言阅读对象笔记正文一、ShardingSphere介绍1.1 ShardingSphere-JDBC&#xff1a;代码级别1.2 ShardingSphere-Proxy&#xff1a;应用级别1.3 横向对比图 二、ShardingSphere之——数据分片2.1 基本介绍2.2 分片的形式2.2.1 垂直分片2.2.2 水平分片 2.3 数据分片核心概念…

数据库应用:MongoDB 库与集合管理

目录 一、理论 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 二、实验 1.MongoDB用户管理 2.MogoDB库管理 3.MogoDB集合管理 三、问题 1.不显示新创建的数据库 2.插入数据报错 3.删除指定数据库报错 一、理论 1.MongoDB用户管理 (1) 内置角色 数据库用户…

11.28 知识回顾(Web框架、路由控制、视图层)

一、 web 框架 1.1 web框架是什么&#xff1f; 别人帮咱们写了一些基础代码------》我们只需要在固定的位置写固定的代码--》就能实现一个web应用 Web框架&#xff08;Web framework&#xff09;是一种开发框架&#xff0c;用来支持动态网站、网络应用和网络服务的开发。这大多…

2020年6月9日 Go生态洞察:VS Code Go扩展加入Go项目

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

unity学习笔记10

一、生命周期函数 1.Awake() 调用时间&#xff1a;对象被激活或创建时。 用途&#xff1a;通常用于初始化对象的状态&#xff0c;获取组件引用或执行其他在脚本生命周期早期需要完成的任务。 2.OnEnable(): 调用时间&#xff1a;对象激活时&#xff0c;包括对象被创建和Se…

Python数据预处理详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据预处理是数据科学中至关重要的步骤&#xff0c;它包括清洗、转换、归一化等操作&#xff0c;以使数据适合于机器学习模型的使用。Python提供了多种强大的库和工具&#xff0c;能够帮助进行数据预处理。本文将…

idea 2023使用技巧(一)

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