1. 编写 Java 程序,定义Test1类,要求如下:
(1) 在类中定义两个Collection集合,并向其中一个集合中添加数据
(2) 用Collection接口中的方法对定义的两个集合进行各种操作。
1.代码
import java.util.ArrayList;
import java.util.Collection;
public class Test1 {
public static void main(String[] args) {
// 创建两个Collection集合
Collection<String> collection1 = new ArrayList<>();
Collection<String> collection2 = new ArrayList<>();
// 向collection1中添加数据
collection1.add("数据1");
collection1.add("数据2");
collection1.add("数据3");
// 向collection2中添加数据
collection2.add("数据4");
collection2.add("数据5");
collection2.add("数据6");
// 输出collection1中的数据
System.out.println("collection1中的数据:");
for (String data : collection1) {
System.out.println(data);
}
// 输出collection2中的数据
System.out.println("collection2中的数据:");
for (String data : collection2) {
System.out.println(data);
}
// 清空collection1
collection1.clear();
// 输出清空后的collection1中的数据
System.out.println("清空后的collection1中的数据:");
for (String data : collection1) {
System.out.println(data);
}
// 将collection1中的数据添加到collection2中
collection2.addAll(collection1);
// 输出添加后的数据
System.out.println("添加后的数据:");
for (String data : collection2) {
System.out.println(data);
}
}
}
- 运行效果:
collection2中的数据:
数据4
数据5
数据6
清空后的collection1中的数据:
添加后的数据:
数据4
数据5
数据6
2. 编写 Java 程序,定义Test2类,要求如下:
(1) 在类中定义两个list集合,并向其中一个集合中添加数据。
(2) 用 subList(int fromIndex, int toIndex)方法获取集合的一部分
(3) 用set(int index, E element)方法修改一个元素
(4) 用add(int index, E element)方法增加一个元素
1.代码
import java.util.ArrayList;
import java.util.List;
public class Test2 {
public static void main(String[] args) {
// 创建两个List集合
List<String> list1 = new ArrayList<>();
List<String> list2 = new ArrayList<>();
// 向list1中添加数据
list1.add("A");
list1.add("B");
list1.add("C");
// 向list2中添加数据
list2.add("D");
list2.add("E");
list2.add("F");
// 获取list1的一部分
List<String> subList = list1.subList(1, 3);
System.out.println("SubList: " + subList);
// 修改list1中的一个元素
list1.set(1, "X");
System.out.println("List1 after modification: " + list1);
// 在list1的指定位置增加一个元素
list1.add(1, "Y");
System.out.println("List1 after adding an element: " + list1);
// 将list2的一部分添加到list1的指定位置
list1.addAll(2, list2.subList(0, 1));
System.out.println("List1 after adding a subList of list2: " + list1);
}
}
2.运行效果:
SubList: [B, C]
List1 after modification: [A, X, C]
List1 after adding an element: [A, Y, X, C]
List1 after adding a subList of list2: [A, Y, D, X, C]
3. 编写 Java 程序,定义Test3类,要求如下:
(1) 在类中定义一个ArrayList集合
(2) 用add()方法向集合中添加元素
(3) 用get()方法获取集合中的指定元素,由于ArrayList集合的索引的取值范围是从0开始的,最后一个索引是size-1。所以,要获取集合中的第2个元素应该是get(1)。
1.代码
import java.util.ArrayList;
public class Test3 {
public static void main(String[] args) {
// 创建一个ArrayList集合
ArrayList<String> list = new ArrayList<>();
// 向集合中添加元素
list.add("元素1");
list.add("元素2");
list.add("元素3");
// 获取集合中的指定元素
String element = list.get(1);
System.out.println("集合中的第2个元素是:" + element);
}
}
2.运行效果:
集合中的第2个元素是:元素2
4. 编写 Java 程序,定义Test4类,在该类中定义一个LinkedList集合
(1) 分别使用addFirst()和addLast()方法向集合中添加元素
(2) 使用peekFirst()方法获取集合中的第一个元素
(3) 使用pollFirst()方法获取并移除集合中的第一个元素
(4) 使用pollLast()方法获取并移除集合中的最后一个元素
(5) 此时,集合中应该没有元素了,用peekLast()方法获取集合中的最后一个元素,由于集合为空,应该返回NULL
1.代码
import java.util.LinkedList;
public class Test4 {
public static void main(String[] args) {
// 创建一个LinkedList集合
LinkedList<String> list = new LinkedList<>();
// 向集合中添加元素
list.addFirst("元素1");
list.addLast("元素2");
// 获取集合中的指定元素
String element = list.peekFirst();
System.out.println("集合中的第一个元素是:" + element);
// 获取并移除集合中的第一个元素
element = list.pollFirst();
System.out.println("被移除的第一个元素是:" + element);
// 获取并移除集合中的最后一个元素
element = list.pollLast();
System.out.println("被移除的最后一个元素是:" + element);
// 此时,集合中应该没有元素了,用peekLast()方法获取集合中的最后一个元素,由于集合为空,应该返回NULL
element = list.peekLast();
System.out.println("尝试获取的最后一个元素是:" + (element == null ? "NULL" : element));
}
}
2.运行效果:
集合中的第一个元素是:元素1
被移除的第一个元素是:元素1
被移除的最后一个元素是:元素2
尝试获取的最后一个元素是:NULL
5. 编写 Java 程序,定义Test5类,要求如下:
(1) 在类中定义一个List集合,并向集合中添加数据
(2) 通过调用List集合的iterator()方法获得迭代器对象
(3) 在while循环条件中使用hashNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素
1.代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test5 {
public static void main(String[] args) {
// 创建一个List集合,并向集合中添加数据
List<String> list = new ArrayList<>();
list.add("元素1");
list.add("元素2");
list.add("元素3");
// 通过调用List集合的iterator()方法获得迭代器对象
Iterator<String> iterator = list.iterator();
// 在while循环条件中使用hasNext()方法判断集合中是否存在下一个元素,如果存在,则调用next()方法将元素取出,否则说明已到达了集合末尾,停止遍历元素
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
}
}
2.运行效果:
元素1
元素2
元素3
6. 编写 Java 程序,定义Test6类,在该类中定义一个HashSet集合hs
(1) 向集合hs中添加6个元素,其中有一些重复的元素
(2) 用size()方法获取添加完元素后集合中元素的个数
(3) 用Iterator迭代器遍历集合的每一个元素
(4) 观察在输出结果中,是否存在重复的元素
1.代码
import java.util.HashSet;
import java.util.Iterator;
public class Test6 {
public static void main(String[] args) {
// 创建一个HashSet集合hs,并向集合中添加6个元素,其中有一些重复的元素
HashSet<String> hs = new HashSet<>();
hs.add("元素1");
hs.add("元素2");
hs.add("元素3");
hs.add("元素4");
hs.add("元素5");
hs.add("元素1");
// 用size()方法获取添加完元素后集合中元素的个数
System.out.println("集合中元素的个数为:" + hs.size());
// 用Iterator迭代器遍历集合的每一个元素
Iterator<String> iterator = hs.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
System.out.println(element);
}
// 观察在输出结果中,是否存在重复的元素
System.out.println("是否存在重复的元素:" + hs.contains(iterator.next()));
}
}
运行效果:
元素1
元素2
元素3
元素4
元素5
思考题1,定义一个List容器,并向容器中添加、移除元素。
1.代码
import java.util.ArrayList;
import java.util.List;
public class Test7 {
public static void main(String[] args) {
// 创建一个List容器,并向容器中添加元素
List<String> list = new ArrayList<>();
list.add("元素1");
list.add("元素2");
list.add("元素3");
System.out.println("添加元素后的集合为:" + list);
// 从集合中移除元素
list.remove("元素2");
System.out.println("移除元素后的集合为:" + list);
}
}
2.运行效果:
添加元素后的集合为:[元素1, 元素2, 元素3]
移除元素后的集合为:[元素1, 元素3]
思考题2,编写一个程序,模拟学生管理系统。可以实现对学生信息的添加、删除、修改和查询功能,要求使用List集合存储自定义的对象集合,并熟练使用List集合的中常用方法实现相关的操作。
分析:(1)定义学生类,自定义对象属性。
(2)学生管理系统的主界面的代码编写,创建集合对象,用于存储学生数据,打印学生管理系统主界面的相关功能,创建键盘输入功能,用switch语句实现选择的功能。最后为了实现多次操作并且手动退出系统。用while(true)循环实现.
(3) 学生管理系统查询所有学生信息的代码编写,首先判断集合中是否有数据,如果没有数据就给出提示,并让该方法不在继续往下执行。如果有数据。遍历集合输出打印数据。
(4) 学生管理系统添加学生信息的代码编写,首先输入学生学号,判断学号有没有被人占用,如果被占用重新输入学号,没有被占用继续录入学生姓名、年龄。家庭住址等信息。创建学生对象,将录入的数据存入对象。最后将学生对象添加入集合,添加学生信息成功。
(5) 学生管理系统删除学生信息的代码编写,键盘录入一个学号,到集合中去查找,看是否有学生使用该学号,如果有就删除该学生信息。如果没有学生使用该学号,返回主界面。
(6)学生管理系统修改学生信息的代码编写。键盘录入一个学号,到集合中去查找,看是否有学生使用该学号,如果过有就修改学生信息。反之返回主界面。
1.代码
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
class Student {
private String studentId;
private String name;
private int age;
private String address;
public Student(String studentId, String name, int age, String address) {
this.studentId = studentId;
this.name = name;
this.age = age;
this.address = address;
}
public String getStudentId() {
return studentId;
}
public void setStudentId(String studentId) {
this.studentId = studentId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "Student{" +
"studentId='" + studentId + '\'' +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
class StudentManagementSystem {
private List<Student> studentList = new ArrayList<>();
private Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
StudentManagementSystem system = new StudentManagementSystem();
system.run();
}
public void run() {
while (true) {
System.out.println("学生管理系统");
System.out.println("1. 查询所有学生信息");
System.out.println("2. 添加学生信息");
System.out.println("3. 删除学生信息");
System.out.println("4. 修改学生信息");
System.out.println("0. 退出系统");
int choice = scanner.nextInt();
scanner.nextLine(); // Consume the newline character
switch (choice) {
case 1:
displayAllStudents();
break;
case 2:
addStudent();
break;
case 3:
deleteStudent();
break;
case 4:
updateStudent();
break;
case 0:
System.out.println("感谢使用学生管理系统,再见!");
System.exit(0);
default:
System.out.println("无效的选项,请重新输入。");
}
}
}
private void displayAllStudents() {
if (studentList.isEmpty()) {
System.out.println("暂无学生信息!");
} else {
System.out.println("所有学生信息:");
for (Student student : studentList) {
System.out.println(student);
}
}
}
private void addStudent() {
System.out.println("请输入学生学号:");
String studentId = scanner.nextLine();
// 检查学号是否已存在
for (Student student : studentList) {
if (student.getStudentId().equals(studentId)) {
System.out.println("该学号已被占用,请重新输入。");
return;
}
}
System.out.println("请输入学生姓名:");
String name = scanner.nextLine();
System.out.println("请输入学生年龄:");
int age = scanner.nextInt();
scanner.nextLine(); // Consume the newline character
System.out.println("请输入学生家庭住址:");
String address = scanner.nextLine();
Student newStudent = new Student(studentId, name, age, address);
studentList.add(newStudent);
System.out.println("学生信息添加成功!");
}
private void deleteStudent() {
System.out.println("请输入要删除的学生学号:");
String studentId = scanner.nextLine();
Iterator<Student> iterator = studentList.iterator();
while (iterator.hasNext()) {
Student student = iterator.next();
if (student.getStudentId().equals(studentId)) {
iterator.remove();
System.out.println("学生信息删除成功!");
return;
}
}
System.out.println("未找到学生信息,删除失败。");
}
private void updateStudent() {
System.out.println("请输入要修改的学生学号:");
String studentId = scanner.nextLine();
for (Student student : studentList) {
if (student.getStudentId().equals(studentId)) {
System.out.println("请输入新的学生姓名:");
String name = scanner.nextLine();
student.setName(name);
System.out.println("请输入新的学生年龄:");
int age = scanner.nextInt();
scanner.nextLine(); // Consume the newline character
student.setAge(age);
System.out.println("请输入新的学生家庭住址:");
String address = scanner.nextLine();
student.setAddress(address);
System.out.println("学生信息修改成功!");
return;
}
}
System.out.println("未找到学生信息,修改失败。");
}
}
2.运行效果:
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
1
暂无学生信息!
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
2
请输入学生学号:
200110
请输入学生姓名:
uj
请输入学生年龄:
12
请输入学生家庭住址:
km
学生信息添加成功!
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
1
所有学生信息:
Student{studentId='200110', name='uj', age=12, address='km'}
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
3
请输入要删除的学生学号:
200110
学生信息删除成功!
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
1
暂无学生信息!
学生管理系统
1. 查询所有学生信息
2. 添加学生信息
3. 删除学生信息
4. 修改学生信息
0. 退出系统
0
感谢使用学生管理系统,再见!
……
思考题3,编写一个java程序,模拟百度翻译。用户输入英文之后搜索程序中对应的中文,如果搜索到对应的中文就输出搜索结果,反之给出提示。要求使用Map集合实现英文与中文的存储。
分析:(1)百度翻译主要用于翻译对应的意思。这是一种映射关系。因此可以用 Map集合来实现,所以首先就是定义Map集合,存储数据。
(2)用键盘录入功能获取我们要翻译的单词。
(3)定义一个方法,在该方法中实现对单词的查询操作,并且根据不同情况给出相关提示。
(4)调用查询的方法,实现翻译。并将结果输出到控制台。
1.代码
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class BaiduTranslate {
private Map<String, String> translationMap = new HashMap<>();
private Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
BaiduTranslate translator = new BaiduTranslate();
translator.initializeTranslationMap(); // 初始化映射关系
translator.translate(); // 执行翻译
}
private void initializeTranslationMap() {
// 初始化映射关系,这里只是一个简单的示例,实际应用中可能需要更多的映射数据
translationMap.put("hello", "你好");
translationMap.put("world", "世界");
translationMap.put("java", "Java编程语言");
// 可以根据实际需要扩展映射数据
}
private void translate() {
while (true) {
System.out.println("请输入要翻译的英文单词(输入exit退出翻译):");
String input = scanner.nextLine().toLowerCase(); // 将输入转换为小写,以匹配映射关系
if (input.equals("exit")) {
System.out.println("感谢使用百度翻译,再见!");
break;
}
String translation = searchTranslation(input);
if (translation != null) {
System.out.println("翻译结果:" + translation);
} else {
System.out.println("抱歉,未找到对应的中文翻译。");
}
}
}
private String searchTranslation(String word) {
return translationMap.get(word);
}
}
2.运行效果:
请输入要翻译的英文单词(输入exit退出翻译):
holle
抱歉,未找到对应的中文翻译。
请输入要翻译的英文单词(输入exit退出翻译):
java
翻译结果:Java编程语言
请输入要翻译的英文单词(输入exit退出翻译):
hello
翻译结果:你好
请输入要翻译的英文单词(输入exit退出翻译):
world
翻译结果:世界
请输入要翻译的英文单词(输入exit退出翻译):
exit
感谢使用百度翻译,再见!