Java集合:ArrayList、LinkedList 模拟 简单的电影DVD在线销售系统

任务需求:

模拟电影DVD在线销售系统:

                     1)能存储n个电影的DVD对象,数量不确定;

                     2)能获取电影DVD对象的总数;

                     3)能够循环取出电影DVD对象;

                     4)在指定的位置添加电影DVD;

                     5)删除某个电影。

                     6)添加销售冠军电影的DVD对象;

                     7)能删除销量最后一名的电影DVD对象。
所需知识点:

                     1.List接口的实现类ArrayList、LinkedList;

                     2.对集合信息的增删改查;

                     3.增强for循环

代码如下:

package cn.demo.main;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.Scanner;


public class Main {

	public static void main(String[] args) {

		Demo();
}

	private static void Demo() {
		LinkedList<ArrayList<String>> llist = new LinkedList<>() ; //存储DVD信息。
		Scanner scr = new Scanner(System.in);
		System.out.println("请输入添加DVD对象的个数:");
		int number = scr.nextInt() ;
		for(int i=0;i<number;i++){
			System.out.println("请输入此DVD对象中存储的电影个数:");
			int number1 = scr.nextInt() ; 
			ArrayList<String> list = new ArrayList<>() ; //存储DVD中的电影。
			for(int j=0;j<number1;j++){
				String movieName = scr.next() ;
				list.add(movieName); //向ArrayList中存储电影。
			}
			llist.add(list); //向LinkedList中存储DVD。 
		}
		int newflag = 1;
		while(newflag==1){
		MainShow();
		int flag = scr.nextInt() ; 
		if(flag==1){
			Demo1(llist, scr);
		}else if(flag==2){
			Demo2(llist);
		}else if(flag==3){
			Demo3(llist, scr, flag);
		}else if(flag==4){
			Demo4(llist, scr);
		}else{
			System.out.println("退出!");
			newflag=0;
		}
	}
	}

	private static void Demo4(LinkedList<ArrayList<String>> llist, Scanner scr) {
		System.out.println("输入需要删除电影所属DVD的序号:");
		int index6 = scr.nextInt() ; 
		System.out.println("输入需要删除的电影名称:");
		String movieName = scr.next() ; 
		int newIndex1 = 1 ;
		for (ArrayList<String> list : llist) {
			if(newIndex1==index6){
				for(int i=0;i<list.size();i++){
					if(movieName.equals(list.get(i))){
						list.remove(i);
					}
				}
				System.out.println("删除完成!");
				System.out.println("删除结果为:");
				System.out.println(list);
				break;
			}
			newIndex1++;
		}
	}

	private static void Demo3(LinkedList<ArrayList<String>> llist, Scanner scr,
			int flag) {
		System.out.println("DVD列表如下:");
		int index = 1 ;
		for (ArrayList<String> l : llist) {
			Iterator<String> itr = l.iterator() ; 
			System.out.print("DVD"+index+"中的电影有:");
			while(itr.hasNext()){
				System.out.print(itr.next()+"  ");
			}
			System.out.println();
			index++;
		}
		System.out.println("通过上面的列表输入你想要修改的DVD和电影:");
		System.out.println("修改的DVD序号:");
		int newindex = scr.nextInt() ;
		System.out.println("修改的电影名称:");
		String newmovie = scr.next() ; 
		int newIndex1 = 1 ;
		for (ArrayList<String> list : llist) {
			if(newIndex1==newindex){
				int flag5 = 0 ;
				for(int i=0;i<list.size();i++){
					if(newmovie.equals(list.get(i))){
						list.remove(i);
						System.out.println("请输入修改后的电影名称:");
						String moviename = scr.next() ; 
						list.add(moviename);
						System.out.println("修改成功!");
						flag5 = 1;
						System.out.println("修改结果为:");
						System.out.println(list);
						break;
					}
				}
				if(flag5==0){
					System.out.println("此DVD中没有这个电影!");
				}
				break;
			}
			newIndex1++;
		}
	}

	private static void Demo2(LinkedList<ArrayList<String>> llist) {
		int index = 1 ; 
		System.out.println("------查看界面------");
		for (ArrayList<String> l : llist) {
			Iterator<String> itr = l.iterator() ; 
			System.out.print("DVD"+index+"中的电影有:");
			while(itr.hasNext()){
				System.out.print(itr.next()+"  ");
			}
			System.out.println();
			index++;
		}
	}

	private static void Demo1(LinkedList<ArrayList<String>> llist, Scanner scr) {
		System.out.println("------增加界面------");
		System.out.println("请输入增加的DVD个数:");
		int num = scr.nextInt() ; 
		for(int i=0;i<num;i++){
			System.out.println("请输入此DVD对象中存储的电影个数:");
			int number3 = scr.nextInt() ; 
			ArrayList<String> list2 = new ArrayList<>() ; //存储DVD中的电影。
			System.out.println("添加的电影名字为:");
			for(int j=0;j<number3;j++){
				String movieName = scr.next() ;
				list2.add(movieName); //向ArrayList中存储电影。
			}
			System.out.println("请输入添加的位置:");
			try{
			int index = scr.nextInt() ;
			llist.add(index,list2); //向LinkedList中存储DVD。 
			System.out.println("在"+index+"位置上,添加成功!");
			}catch(Exception e){
				System.out.println("输入的index超出了集合本身长度!");
			}
		}
	}

	private static void MainShow() {
		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("请输入你的选择:");
	}

}

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值