Kbaor_Ktp_0920_10 集合和泛型
2023年9月20日第十章(集合和泛型)课后题
第一题
请使用LinkedList来模拟一个队列(先进先出的特性):
1.1 拥有放入对象的方法void put(Object o)
1.2 取出对象的方法Object get()
1.3 判断队列当中是否为空的方法boolean isEmpty();并且,编写测试代码,验证你的队列是否正确。
package ktp_0920_10;
import java.util.LinkedList;
/**
* [第十章第一题]
*
* @author 秦帅 2128424055
* @data 2023-9-20
*
*/
public class zy_01 {
public static void main(String[] args) {
MyQueue que=new MyQueue();
que.put("秦");
que.put("帅");
que.put("最");
que.put("帅");
while(!que.isEmpty()){
//获取第一个元素
Object k=que.get();
System.out.println(k);
}
}
}
class MyQueue{
//存储队列中数据
LinkedList<Object> data=new LinkedList<>();
//1.1 拥有放入对象的方法void put(Object o)
public void put(Object o){
data.add(o);
}
//1.2取出对象的方法Object get()
public Object get(){
//从队列中获取元素,获取最先放入元素,获取后从队列中删除该元素
Object obj=data.getFirst();
//获取后从队列中删除该元素
data.removeFirst();
return obj;
}
//1.3 判断队列当中是否为空的方法boolean isEmpty()
public boolean isEmpty(){
return data.size()==0?true:false;
}
}
第二题
假设顺序列表ArrayList中存储的元素是整型数字1~5 (加入泛型限制数据类型),遍历每个元素,将每个元素顺序输出。
package ktp_0920_10;
import java.util.ArrayList;
import java.util.List;
/**
* [第十章第二题]
*
* @author 秦帅 2128424055
* @data 2023-9-20
*
*/
public class zy_02 {
public static void main(String[] args) {
//假设顺序列表Arraylist中存储的元素是整型数字1~5,遍历每个元素,将每个元素顺序输出。
List<Integer> list = new ArrayList<>(5);
for (int i = 1; i <= 5; i++) {
list.add(i);
}
System.out.println("每个元素按顺序输出:");
list.forEach(System.out::println);
}
}
第四题
编写一个程序,创建一个HashMap对象,用于存储银行储户的信息(其中储户的主要信息有储户的ID,姓名和余额),储户的ID作为key,显示其中某个储户的当前余额。
package ktp_0920_10;
import java.util.HashMap;
import java.util.Map;
/**
* [第十章第四题]
*
* @author 秦帅 2128424055
* @data 2023-9-20
*
*/
public class zy_04 {
/**
* 编写一个程序,创建一个HashMap对象,用于存储银行储户的信息(其中储户的主要信息有储户的ID,姓名和余额),储户的ID作为key,显示其中某个储户的
* 当前余额。
*/
public static void main(String[] args) {
Map<Integer, User>users=new HashMap<>();
User usr1=new User(1,"秦帅",1000000.0);
User usr2=new User(2,"赵青林",200000.0);
User usr3=new User(3,"吴君杰",3000000.0);
users.put(usr1.getId(), usr1);
users.put(usr2.getId(), usr2);
users.put(usr3.getId(), usr3);
for (int i = 1; i <= 3; i++) {
User usr = users.get(i);
System.out.println(usr);
}
}
}
//储户类
class User {
//属性 储户的ID,姓名和余额
private Integer id; //储户的ID
private String name;//姓名和余额
private Double money;//余额
public User(Integer id, String name, Double money) {
this.id = id;
this.name = name;
this.money = money;
}
@Override
public String toString() {
return "用户ID为" + id + ",姓名为" + name + "账户的余额为" + money + "。";
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Double getMoney() {
return money;
}
public void setMoney(Double money) {
this.money = money;
}
}
第五题
编写一个程序,创建一个HashMap对象,用于存储银行储户的信息(其中储户的主要信息有储户的ID,姓名和余额),储户的ID作为key,显示其中某个储户的当前余额。
package ktp_0920_10;
import java.util.Scanner;
import java.util.TreeSet;
/**
* [第十章第四题]
*
* @author 秦帅 2128424055
* @data 2023-9-20
*
*/
public class zy_05 {
/**
* 从控制台输入若干个单词(输入回车结束)放入集合TreeSet中,将这些单词排序后(忽略大小写)打印出来。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
TreeSet<String> danci = new TreeSet<>();
System.out.println("请输入单词,输入“完成”开始排序:");
String input;
while (!(input = scanner.next()).equals("完成"))
{
danci.add(input);//把输入得名字存入TreeSet
}
System.out.println("按字典序排序后的名字如下:");//TreeSet特有的功能
for (String dc : danci)
{
System.out.println(dc);
}
}
}

浙公网安备 33010602011771号