Java硬核程序设计实验“集合与泛型”详解

这篇博客详细介绍了Java集合和泛型的使用,包括List和Map的基础操作,以及如何根据教材案例设计图书购物车。通过一系列编程练习,读者将深入理解集合的概念、体系结构、泛型的应用,以及在实际项目中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

❥  作为上学年  “Java硬核程序设计实验详解”  系列补充  

目录

❀1. 题目:编写程序练习泛型和List集合的基本使用

❀2. 题目:编写程序练习泛型和Map集合的基本使用

❀3. 题目:按照教材[案例7-8]的思路,在其基础上设计一个图书购物车

❀4. 题目:在Eclipse 下完成如下实践项目 (选做题)

:star:️4. 架构&源代码:

:sunny:| 一、实验目的

1.理解集合的概念、体系结构、分类及使用场景

2.掌握Set接口及主要实现类

3.掌握List接口及主要实现类

4.掌握Map接口及主要实现类

5.理解泛型的作用,并掌握类型安全检查在集合中的应用

:sunny:| 二、实验内容

❀1. 题目:编写程序练习泛型和List集合的基本使用

(1)创建一个只能容纳String对象名为strNames的ArrayList集合;

(2)按顺序往集合中添加5个字符串对象:“信电学院”、“数理学院”、“机电学院”、“土木学院”、“食品学院”;

(3)对集合进行遍历(掌握几种遍历集合的方法),分别打印集合中的每个元素的位置与内容;

(4)首先打印集合的大小,然后删除集合中的第3个元素,并显示删除元素的内容,然后再打印目前集合中第3个元素的内容,并再次打印集合的大小。

(5)本题测试程序的名称为SY6_1_List,包名为com.xzit.sy6

 思考 

如果将第(1)中的ArrayList集合换成HashSet集合,程序有什么不同?编程测试。

实验结果:

若更换为Hashset则不能用普通for循环遍历

❀2. 题目:编写程序练习泛型和Map集合的基本使用

(1)创建一个Book类,该类包含图书的ISBN号、图书名称、作者、出版社、出版日期、图书价格等属性。

(2)创建一个Map<Key,Values>类型的对象booksmap,其中Key的类型为图书的ISBN号、Values类型为Book类对象。

(3)往booksmap集合中添加5个“键-值”对象,即五个ISBN号对应于五本书籍信息。

(4)对集合进行遍历,分别打印集合中的每个元素的值;

(5)首先打印集合的大小,然后删除集合里图书名称中包含java的书籍元素,并显示删除元素的内容,并再次打印集合的大小。

(6)本题测试程序的名称为SY6_2_Map,包名为com.xzit.sy6

实验结果:

❀3. 题目:按照教材[案例7-8]的思路,在其基础上设计一个图书购物车

存储用户购买图书的信息。能够打印出购物车中图书的信息,图书价格、小计和总的费用。用HashMap类模拟购物车。

实现思路指导:

(1)新建图书类(Product),该步骤第2题已实现。

(2)新建BookShop类,该类实现对所购图书信息的封装。

(3)新建书库类BookStore,书库里存放了大量的图书,这里我们用ArrayList来存放,并初始化部分图书信息。

(4)新建顾客类Customer。每个顾客进入书库都可以获得一个购物车,这个购物车用HashMap来实现,图书的编号是它的键,捆扎后的BookShop是它的值。

(5)新建测试主类SY6_3_BuyCar。

实验结果:

❀4. 题目:在Eclipse 下完成如下实践项目 (选做题)

1.[SY6_4.java]学生选课系统的设计与实现。一个学生可以选修多门课程、一门课程可以被多个学生选,但一门课程不能被一个学生选择多次。

功能要求:

(1)运行程序时,先显示一个顶层菜单,如下图6-1所示。

图6-1 顶级菜单

(2)各个菜单命令的含义:0表示退出程序,1表示学生登录,2表示管理员查看各门课程都被哪些学生选了。

(3)学生登录信息存放在StudentVDB类中类型为Map的Students对象中。在登录过程中,学号或密码输入不正确的次数有三次输入机会,如果三次都不成功,返回到如图7-1所示的界面,如果登录成功,显示如图6-2所示的界面。

图6-2 学生登录成功后的界面

(4)完成学生界面中各个命令对应的功能能。课程信息存放在CourseVDB类中。当学生输入“0”时返回图1界面,此时该学生的这次选课就结束了。可以等待下一个学生来进行登录。

设计要求:采用如下包结构,不能改变次包结构,但可以在其中增加新类或新建包。

(5)本实验测试主类为SY6_4.java

实验结果:

:sunny:| 三、实验结果

:star:️1. 源代码:

package EXPS.Exp06.com.xzit.sy6;

import java.sql.SQLOutput;
import java.util.ArrayList;
import java.util.Iterator;
/**
 * 班级:19软嵌2
 * 学号:20190507223
 * 姓名:夏旭
 * 实验时间:2020-5-25
 * 本程序的功能是:定义应该LIST,存取数据
 */
public class SY6_1_LIST {
    public static void main(String[] args) {
        ArrayList<String> lis=new ArrayList<>();
        lis.add("信电学院");
        lis.add("数理学院");
        lis.add("机电学院");
        lis.add("土木学院");
        lis.add("食品学院");
        for(int i=0;i<lis.size();i++){
            System.out.println("第"+(i+1)+"个数据:"+" "+lis.get(i));
        }
        System.out.println("------------------");
        Iterator iterator=lis.iterator();
        int num=1;
        while (iterator.hasNext()){
            String node=(String) iterator.next();
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值