当前位置: 首页 > news >正文

day11

题目1

现有如下字符串元素:["aaa", "bbb", "aaa", "aaa", "ccc", "bbb"],请将所有的元素按顺序存入ArrayList集合中,并遍历集合查看存储结果。

训练目标

ArrayList集合存储字符串元素,并遍历。

训练提示

1、创建ArrayList集合,泛型如何定义?

2、怎样将数据添加到集合中?

3、怎样遍历集合?

训练步骤

1、创建ArrayList集合对象,泛型声明为String类型

2、调用集合的add方法,将元素依次存入集合

3、遍历集合

​ 3.1、定义循环,索引从0到集合的size-1

​ 3.2、通过ArrayList集合的get方法,依次获取索引上的元素

参考答案

import java.util.ArrayList;  public class Work {  public static void main(String[] args) {  //创建集合对象  ArrayList<String> list = new ArrayList<>();  list.add("aaa");  list.add("bbb");  list.add("aaa");  list.add("aaa");  list.add("ccc");  list.add("bbb");  //遍历集合  System.out.print("[");  for (int i = 0; i < list.size(); i++) {  System.out.print(list.get(i)+", ");  }  System.out.println("]");  }  
}

题目2

请定义教师(Teacher)类,属性包含姓名和专业名称。将若干教师对象存入ArrayList集合中,并遍历集合打印教师信息,格式如下:

姓名:赵老师, 专业:javase
姓名:钱老师, 专业:javaee
姓名:孙老师, 专业:php
姓名:李老师, 专业:python

训练目标

ArrayList集合存储自定义对象,并遍历。

训练提示

1、怎样定义一个描述教师信息的类?

2、需要将教师对象存入集合,创建集合对象,泛型该怎样定义?

3、怎样将数据添加到集合中?

4、怎样遍历ArrayList集合?输出信息时,直接打印对象名称可以吗?怎样才能按照题目要求格式输出信息?

训练步骤

1、新建Teacher类,成员变量为String类型的name和course,私有修饰,提供构造方法,提供get和set方法。

2、创建ArrayList集合对象,泛型声明为Teacher类型

3、创建若干Teacher对象,可以使用构造方法为成员变量赋值,调用集合的add方法,将元素依次存入集合。

4、遍历集合

​ 3.1、定义循环,索引从0到集合的size-1。

​ 3.2、通过ArrayList集合的get方法,依次获取索引上的元素。

​ 3.3、通过Teacher对象的get方法,获取属性值,拼接成要求的格式输出。

参考答案

public class Teacher {  private String name;  private String major;  public Teacher() {  }  public Teacher(String name, String major) {  this.name = name;  this.major = major;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public String getMajor() {  return major;  }  public void setMajor(String major) {  this.major = major;  }  
}import java.util.ArrayList;  public class Work {  public static void main(String[] args) {  //创建集合对象  ArrayList<Teacher> list = new ArrayList<>();  //创建老师对象  Teacher t1 = new Teacher("赵老师", "javase");  Teacher t2 = new Teacher("钱老师", "javase");  Teacher t3 = new Teacher("孙老师", "php");  Teacher t4 = new Teacher("李老师", "python");  //添加  list.add(t1);  list.add(t2);  list.add(t3);  list.add(t4);  //遍历集合打印老师信息  for (int i = 0; i < list.size(); i++) {  Teacher t = list.get(i);  System.out.println("姓名:" + t.getName() + ", " + "专业:" + t.getMajor());  }  }  
}

题目3

有如下员工信息:

姓名:张三,工资:3000
姓名:李四,工资:3500
姓名:王五,工资:4000
姓名:赵六,工资:4500
姓名:田七,工资:5000

先需要将所有的员工信息都存入ArrayList集合中,并完成如下操作:

1、判断是否有姓名为“王五”的员工,如果有,改名为“王小五”

2、判断是否有姓名为“赵六”的员工,如果有,将其删除

3、给姓名为“田七”的员工,涨500工资

训练目标

ArrayList集合的修改元素和删除元素API

训练提示

1、需要定义员工类,将员工信息进行封装

2、创建ArrayList集合,创建员工对象,将所有员工对象存入集合

3、需要判断集合中元素的信息,那么肯定需要遍历集合获取到所有元素

4、ArrayList集合中,修改元素和删除元素的方法是什么?在遍历集合时,删除了集合中的元素,会不会对遍历产生影响呢?如果会,该怎么解决?

训练步骤

1、定义员工类Worker,私有属性name和salary,分别为String和int类型,表示姓名和工资,提供构造、get、set方法

2、创建ArrayList集合,泛型为Worker类型,创建员工对象,将所有员工对象存入集合

3、使用for循环遍历集合,获取到每一个元素。

​ 3.1、判断元素的name属性,如果符合条件,作出相应的修改或者删除。

​ 3.2、遍历时如果删除元素,后面的元素会往前走,索引再加1就会有元素遗漏,所以删除后遍历索引要相应的减1,防止有元素遍历不到。

参考答案

public class Worker {  //创建员工类  private String name;  private int salary;  public Worker() {  }  public Worker(String name, int salary) {  this.name = name;  this.salary = salary;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public int getSalary() {  return salary;  }  public void setSalary(int salary) {  this.salary = salary;  }  
}import java.util.ArrayList;  public class Work {  public static void main(String[] args) {  //创建集合对象  ArrayList<Worker> list = new ArrayList<>();  Worker worker = new Worker("张三", 3000);  Worker worker1 = new Worker("李四", 3500);  Worker worker2 = new Worker("王五", 4000);  Worker worker3 = new Worker("赵六", 4500);  Worker worker4 = new Worker("田七", 5000);  //添加  list.add(worker);  list.add(worker1);  list.add(worker2);  list.add(worker3);  list.add(worker4);  //判断是否存在姓名为"王五"的员工,如果有改名为"王小五",如果没有提示"没有此员工"  for (int i = 0; i < list.size(); i++) {  Worker w = list.get(i);  if ("王五".equals(w.getName())) {  w.setName("王小五");  list.set(i, w);  }  if ("赵六".equals(w.getName())) {  list.remove(i--);  }  if ("田七".equals(w.getName())) {  w.setSalary(w.getSalary() + 500);  list.set(i, w);  }  }  //遍历  for (int i = 0; i < list.size(); i++) {  Worker w = list.get(i);  System.out.println(w.getName() + " " + w.getSalary());  }  }  }

题目4(综合)

利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:

1、提供操作菜单,可以选择要进行的操作。

2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。

3、可以查询图书,显示所有图书信息,然后返回到菜单。

4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。

5、可以删除图书,通过编号删除,删除成功后,返回到菜单。

6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。

7、可以退出系统,结束程序运行。

提示:

1、所有图书信息由键盘录入

2、图书的价格可以定义为字符串类型,因为在键盘录入时,不可以先使用nextInt()方法获取整数然后再使用next()方法获取字符串,这样会导致next()方法获取不到数据。

训练目标

ArrayList集合API的综合运用、编程逻辑的锻炼

训练提示

1、首先需要创建一个图书类,封装图书信息。

2、提供操作菜单,可以通过键盘录入不同的数字来表示不同的操作,选择结构语句可以实现该需求。

3、管理图书,需要将图书存放起来,首先需要创建集合容器。

4、添加图书,即将图书存入集合中,但存入之前需要判定编号的唯一性,如果编号存在,需要重新录入。

5、查询所有图书,即为遍历集合显示信息。

6、查询单本图书,需要录入图书名称,遍历集合进行查询。

7、修改图书信息,需要根据编号先找到该图书,修改其除了编号之外的信息,存入集合覆盖原来的信息。

8、删除图书信息,需要根据编号先找到该图书,根据索引直接删除即可。

9、退出系统功能,借助结束程序的API实现即可。

训练步骤

1、创建Book类,属性String类型的id,name,author,price。提供构造方法、get和set方法。

2、创建测试类Test04,在main方法中,创建键盘录入对象,创建ArrayList集合对象用于存储图书。

3、使用输出语句定义一个操作菜单,包含添加、查看全部、查看单个、修改、查询、退出功能,使用switch语句对键盘录入的菜单项进行判断。

4、定义方法实现判断id是否已经存在。方法返回值boolean类型,参数列表为集合ArrayList和要查找的id字符串。遍历集合,判断id是否与集合中的Book对象的id相同,如果有相同,返回true,否则返回false

5、定义方法实现添加功能。方法返回值void,参数列表为集合ArrayList。在方法中,先使用键盘录入获取用户录入的id信息,调用方法判断id是否存在,如果存在,重新录入,如果不存在,再依次获取图书的其他信息,创建图书对象,并将图书对象存入集合中,输出添加成功的提示。

6、定义方法实现查看所有图书。方法返回值void,参数列表为集合ArrayList。如果集合长度为0,给出提示,结束方法,否则遍历集合,获取每个图书对象,再调用对象的get方法,获取所有信息展示即可。

7、定义方式实现根据名称查看一本图书。方法返回值void,参数列表为集合ArrayList。键盘录入图书的名称,遍历集合,获取每个图书的名称信息进行比较,如果相同,输出该图书信息,结束方法。否则输出不存在该图书。

8、定义方法实现根据编号修改图书信息。方法返回值void,参数列表为集合ArrayList。键盘录入图书编号,查询该编号是否存在,如果存在,再依次录入图书的修改后信息,创建新的图书对象,存入集合,将原对象覆盖,给出成功的提示,否则提示该编号图书不存在。

9、定义方法实现根据编号删除图书信息。方法返回值void,参数列表为集合ArrayList。键盘录入图书编号,查询该编号是否存在,如果存在,根据索引删除该对象,返回成功的提示,否则提示该编号的图书不存在。

10、退出系统的功能直接调用System的exit方法实现即可。

参考答案

public class Book {  //创建图书类,图书的属性有:编号,书名,作者,价格  private int id;  private String name;  private String author;  private double price;  public Book() {  }  public Book(int id, String name, String author, double price) {  this.id = id;  this.name = name;  this.author = author;  this.price = price;  }  public int getId() {  return id;  }  public void setId(int id) {  this.id = id;  }  public String getName() {  return name;  }  public void setName(String name) {  this.name = name;  }  public String getAuthor() {  return author;  }  public void setAuthor(String author) {  this.author = author;  }  public double getPrice() {  return price;  }  public void setPrice(double price) {  this.price = price;  }  
}import java.util.ArrayList;  
import java.util.Scanner;  public class Work {  public static void main(String[] args) {  //创建集合对象  ArrayList<Book> list = new ArrayList<>();  //提供操作菜单  while (true) {  System.out.println("==========图书管理系统==========");  System.out.println("1.添加图书");  System.out.println("2.查询显示所有图书");  System.out.println("3.跟据书名查询单本书信息");  System.out.println("4.删除图书");  System.out.println("5.修改图书信息");  System.out.println("6.退出系统");  System.out.println("请输入您的操作:");  Scanner sc = new Scanner(System.in);  int choice = sc.nextInt();  switch (choice) {  case 1:  addBook(list);  break;  case 2:  showBook(list);  break;  case 3:  queryBook(list);  break;  case 4:  deleteBook(list);  break;  case 5:  updateBook(list);  break;  case 6:  exit();  break;  default:  System.out.println("输入错误!请重新输入!");  }  }  }  //判断id是否存在  public static boolean contains(ArrayList<Book> list, int id) {  for (int i = 0; i < list.size(); i++) {  Book book = list.get(i);  if (book.getId() == id) {  return true;  }  }  return false;  }  //添加图书id唯一  public static void addBook(ArrayList<Book> list) {  //创建图书对象  Book book = new Book();  Scanner sc = new Scanner(System.in);  System.out.println("请输入图书编号: ");  int id = sc.nextInt();  if (!contains(list, id)) {  System.out.println("请输入图书名称:");  String name = sc.next();  System.out.println("请输入图书作者:");  String author = sc.next();  System.out.println("请输入图书价格:");  double price = sc.nextDouble();  //封装图书对象  book.setId(id);  book.setName(name);  book.setAuthor(author);  book.setPrice(price);  //添加  list.add(book);  //提示  System.out.println("添加成功!");  } else {  System.out.println("编号重复!请重新输入!");  }  }  //查询所有图书  public static void showBook(ArrayList<Book> list) {  System.out.println("编号\t\t书名\t\t作者\t\t价格");  for (int i = 0; i < list.size(); i++) {  Book book = list.get(i);  System.out.println(book.getId() + "\t" + book.getName() + "\t" + book.getAuthor() + "\t" + book.getPrice());  }  System.out.println("查询完毕!");  }  //根据书名查询单本图书  public static void queryBook(ArrayList<Book> list) {  System.out.println("请输入要查询的图书名称:");  Scanner sc = new Scanner(System.in);  String name = sc.next();  for (int i = 0; i < list.size(); i++) {  Book book = list.get(i);  if (book.getName().equals(name)) {  System.out.println("编号\t\t书名\t\t作者\t\t价格");  System.out.println(book.getId() + "\t" + book.getName() + "\t" + book.getAuthor() + "\t" + book.getPrice());  return;  } else {  System.out.println("没有此图书!");  return;  }  }  }  //删除图书  public static void deleteBook(ArrayList<Book> list) {  System.out.println("请输入要删除的图书编号:");  Scanner sc = new Scanner(System.in);  int id = sc.nextInt();  for (int i = 0; i < list.size(); i++) {  Book book = list.get(i);  if (book.getId() == id) {  list.remove(i);  System.out.println("删除成功!");  return;  } else {  System.out.println("没有此图书!");  return;  }  }  }  //修改图书信息  public static void updateBook(ArrayList<Book> list) {  System.out.println("请输入要修改的图书编号:");  Scanner sc = new Scanner(System.in);  int id = sc.nextInt();  for (int i = 0; i < list.size(); i++) {  Book book = list.get(i);  if (book.getId() == id) {  System.out.println("请输入要修改的图书名称:");  String name = sc.next();  System.out.println("请输入要修改的图书作者:");  String author = sc.next();  System.out.println("请输入要修改的图书价格:");  double price = sc.nextDouble();  book.setName(name);  book.setAuthor(author);  book.setPrice(price);  System.out.println("修改成功!");  return;  } else {  System.out.println("没有此图书!");  return;  }  }  }  //退出系统  public static void exit() {  System.out.println("欢迎下次再来!");  System.exit(0);  return;  }  
}

http://www.hskmm.com/?act=detail&tid=40505

相关文章:

  • 2025年建站AI工具TOP10盘点:从ChatGPT到Lynx的智能革命
  • prometheus监控体系搭建
  • 为何AI反诈骗防护比以往任何时候都更重要
  • 2025 年最受欢迎的 50 款免费 AI 工具,无免费增值、无付费计划或无每日信用额度限制
  • ICPC Nanjing Regional (部分题题解)
  • 高级语言程序设计课程第三次个人作业
  • Elasticsearch Hot Threads
  • P6147 [USACO20FEB] Delegation G 题解
  • AI元人文:大语言模型、世界模型与AI元人文模型的文明三重奏
  • MySQL 数据加密整改文档(TDE + 字段加密 + 密码哈希)
  • 2025年北京无人机执照培训机构推荐榜,caac无人机执照培训机构/caac无人机执照培训基地/聚焦企业服务品质与专业培训能力深度剖析
  • 2025年港口动态沙盘模型厂家 权威推荐榜单:物流教学实训沙盘/港口演示实训模型/智能港口实训模型源头厂家精选
  • 2025年U型科氏质量流量计最新推荐榜:微弯型科氏质量流量计/直管型科氏质量流量计/科氏质量流量计助力产业智能化升级
  • 2025年火锅底料工厂厂家权威推荐榜单:袋装火锅底料/餐饮火锅底料/企业火锅底料源头厂家精选
  • 收藏版:Phinx 数据库迁移完全指南
  • 沙姆镜头的工作原理及使用技巧
  • 全域感知,主动预警:视频汇聚平台EasyCVR打造水库大坝智慧安防视频监控智能分析方案
  • 应用程序无法正常启动(0xc0000142)怎么办?3个方法彻底解决【2025最新图文教程】
  • 机器学习之决策树
  • 基于二维熵阈值分割与遗传算法结合的图像分割
  • 2025年碳氢肥料生产厂家权威推荐榜单:农产品用料/增产用肥/碳氢核肥邮沃源头厂家精选
  • 2025年修护/二硫化硒去屑/香氛/控油蓬松/洗发水推荐榜:西安悦己容生物主打植萃护理,四大品牌以精准配方适配多元发质
  • 2025喷涂/聚脲涂料领域源头厂家推荐榜:宁国创遂新材料领衔,多企业助力防腐防护升级​
  • 2025弯管领域源头厂家推荐榜:合肥市翼达机械领衔,多企业助力工业管件加工升级​
  • 2025不锈钢剪板折弯推荐榜:上海一步一金属主打定制加工,四大企业以精准工艺赋能工业制造
  • 2025年灭火装置厂家推荐排行榜,气体灭火装置,自动灭火装置,机床灭火装置,七氟丙烷灭火装置,二氧化碳灭火装置,清洗机灭火装置,走心机灭火装置,搓丝机灭火装置,磨床灭火装置,火花机灭火装置公司推荐
  • CF2038B Make It Equal
  • 算法分析--分治--3.矩阵乘法
  • 2025年高温线缆优质厂家盘点:实力派企业守护工业核心需求,铁氟龙高温线,硅胶高温线,高压高温线厂家推荐
  • 三立轴承:精密轴承安装后怎么检查?