ArrayList 练习题

1点名器 

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

class CallName3 
{
	public static void main(String[] args) 
	{
		ArrayList<String> list=new ArrayList<String>();		
		
		while(true){
			System.out.println("1.存储同学名字");
			System.out.println("2.查看全班同学");
			System.out.println("3.点名");
			System.out.println("4.退出");
			System.out.println("请输入您选择的编号:");

			Scanner sc=new Scanner(System.in);
			int choose=sc.nextInt();			

			switch(choose){
				case 1:
					saveAll(list);
					break;
				case 2:
					showAll(list);
					break;
				case 3:
					callOne(list);
					break;
				case 4:
					System.out.println("您已退出");
					return;
			}
		}
	}

	//存储
	public static void saveAll(ArrayList<String> list){
		System.out.println();
		System.out.println("请输入您要录入的同学数量:");

		//还可以这样:
		//System.out.println("您还要继续添加吗?");
		//System.out.println("1.继续 2.取消");

		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();

		for(int i=0;i<num;i++){
			System.out.println("请输入第"+(i+1)+"位同学的姓名:");			
			list.add(sc.next());
		}
		System.out.println(num+"名同学已录入成功!");
		System.out.println();
	};

	//总览
	public static void showAll(ArrayList<String> list){
		System.out.println();
		System.out.println("全班同学为:");

		for(int i=0;i<list.size();i++){
			System.out.print(list.get(i)+" ");
		};
		System.out.println();
		System.out.println();
	};

	//随机点名
	public static void callOne(ArrayList<String> list){
		System.out.println();
		System.out.println("点到的同学为:");

		Random r=new Random();
		int i=r.nextInt(list.size());

		System.out.println(list.get(i));
		System.out.println();
	}
}

2库存管理 

class Pro 
{
	String proName; //商品名
	double proSize; //商品尺寸
	double proPrice; //商品价格
	int proNum; //库存
}
import java.util.Scanner;
import java.util.ArrayList;
class Stock2 
{
	public static void main(String[] args) 
	{
		//创建Pro对象并初始化数据
		Pro mac=new Pro();
		mac.proName="MacBookAir";
		mac.proSize=13.3;
		mac.proPrice=6988.88;
		mac.proNum=5;

		Pro think=new Pro();
		think.proName="ThinkpadT450";
		think.proSize=14.0;
		think.proPrice=5999.99;
		think.proNum=10;

		Pro as=new Pro();
		as.proName="ASUS-FL5800";
		as.proSize=15.6;
		as.proPrice=4999.5;
		as.proNum=18;

		ArrayList<Pro> prolist=new ArrayList<Pro>(); //创建集合

		//把对象加入集合
		prolist.add(mac);
		prolist.add(think);
		prolist.add(as);

		//功能选择
		while(true){
			System.out.println("----------库存管理----------");
			System.out.println("1.查看库存清单");
			System.out.println("2.修改商品库存数量");
			System.out.println("3.退出");			
			System.out.println("请输入要执行的操作序号:");

			Scanner sc=new Scanner(System.in);
			int select=sc.nextInt();

			if(select==1){
				showList(prolist); 
			}
			if(select==2){				
				modifyNum(prolist);			
			}
			if(select==3){			
				signOut();
				break;
			}
		}
	}
	
	//查看库存清单
	public static void showList(ArrayList<Pro> prolist){
		System.out.println();
		System.out.println("--------------------商城库存清单----------------------------");
		System.out.println("编号\t品牌型号\t尺寸\t价格\t\t库存数");
		
		//打印商品
		for(int i=0;i<prolist.size();i++){
			System.out.println(" "+(i+1)+"\t"+prolist.get(i).proName+"\t"+prolist.get(i).proSize+"\t"+prolist.get(i).proPrice+"\t\t"+prolist.get(i).proNum);
		}

		System.out.println("------------------------------------------------------------");
		
		int sumNum=0; //总库存
		for(int i=0;i<prolist.size();i++){
			sumNum+=prolist.get(i).proNum;
		}
		System.out.println("总库存数:"+sumNum);

		double sumMoney=0; //总金额
		for(int i=0;i<prolist.size();i++){
			sumMoney+=prolist.get(i).proPrice*prolist.get(i).proNum;
		}
		System.out.println("库存商品总金额:"+sumMoney);

		System.out.println();
		System.out.println();		
	}

	//修改库存
	public static void modifyNum(ArrayList<Pro> prolist){
		System.out.println();
		Scanner sc=new Scanner(System.in);

		while(true){
			System.out.println("请输入您要修改的商品编号");	
			int proId=sc.nextInt();
			
			if(proId>0&&proId<=prolist.size()){ //必须输入正确的编号范围
				System.out.println("请输入您要修改的库存数量");
				int afterNum=sc.nextInt();		

				prolist.get(proId-1).proNum=afterNum;	
				System.out.println();

				break;
			}			
		}		
	}

	//退出
	public static void signOut(){
		System.out.println("您已退出");		
	}
}

超市商品管理

public class Pro {
	String num;  //商品编号
	String name; //商品名称
	double price; //商品单价
}
package com.oracle.demo01;

import java.util.ArrayList;
import java.util.Scanner;

public class Stock{
	public static void main(String[] args) {
		//建商品对象
		Pro p1=new Pro();
		p1.num="9001";
		p1.name="少林寺酥饼核桃";				
		p1.price=120.0;
		
		Pro p2=new Pro();
		p2.num="9002";
		p2.name="尚康杂粮牡丹饼";				
		p2.price=20.0;	
		
		Pro p3=new Pro();
		p3.num="9003";
		p3.name="新疆原产哈蜜瓜";				
		p3.price=7.0;	
		
		//商品对象加入集合
		ArrayList<Pro> prolist=new ArrayList<Pro>();
		prolist.add(p1);
		prolist.add(p2);
		prolist.add(p3);		
		
		//菜单
		while(true){
			System.out.println("==========欢迎光临 oracle 超市==========");
			System.out.println("1:货物清单 2:添加新货物 3:删除货物 4:修改货物");
			System.out.println("5:退出系统");
			System.out.println("请您输入要操作的功能序号:");
			
			Scanner sc=new Scanner(System.in);
			int choose=sc.nextInt();
			switch(choose){
				case 1:	
					showList(prolist);
					break;
				case 2:	
					addPro(prolist);
					break;
				case 3:	
					delPro(prolist);
					break;
				case 4:	
					editPro(prolist);
					break;
				case 5:	
					System.out.println("您已退出系统");					
					return;				
			}			
		}
	}
	
	//显示商品
	public static void showList(ArrayList<Pro> prolist){
		System.out.println();
		System.out.println("==========商品库存清单==========");
		System.out.println("商品编号\t商品名称\t商品单价");
		
		for(int i=0;i<prolist.size();i++){
			System.out.println(prolist.get(i).num+"\t"+prolist.get(i).name+"\t"+prolist.get(i).price+"\t");
		}
		System.out.println();
	}
	
	//添加商品
	public static void addPro(ArrayList<Pro> prolist){
		System.out.println();
		
		Pro newPro=new Pro();		
		
		Scanner sc=new Scanner(System.in);
		
		System.out.println("请输入新水果的名称:");		
		newPro.name=sc.next(); //最好还是定义个变量
		
		System.out.println("请输入新水果的编号:");
		newPro.num=sc.next();
		
		System.out.println("请输入新水果的单价:");
		newPro.price=sc.nextDouble();
		
		prolist.add(newPro);		
		
		System.out.println("新商品已添加成功!");
		System.out.println();		
	}
	
	//删除商品
	public static void delPro(ArrayList<Pro> prolist){
		System.out.println();
		
		//showList(prolist); //删除之前先展示一下商品,体验更好
		System.out.println("请输入您要删除的水果编号");
		Scanner sc=new Scanner(System.in);
		String dnum=sc.next();
		
		for(int i=0;i<prolist.size();i++){
			if(prolist.get(i).num.equals(dnum)){ //直接==是地址相等,因为是String是引用数据类型。如果判断不相等,可以前面加个!取反
				prolist.remove(i);				
			}
		}
		System.out.println("水果信息删除完毕!");		
		System.out.println();
	}
	
	//修改商品
	public static void editPro(ArrayList<Pro> prolist){
		System.out.println();
		System.out.println("请输入您要修改信息的水果编号:");
		Scanner sc=new Scanner(System.in);
		String dnum=sc.next();		
		
		//用set来修改
		System.out.println("请输入新的水果编号:");
		String nnum=sc.next();	
		
		System.out.println("请输入新的水果名称:");
		String nname=sc.next();
		
		System.out.println("请输入新的水果单价:");
		Double nprice=sc.nextDouble();
		
		Pro newPro=new Pro();
		newPro.num=nnum;
		newPro.name=nname;
		newPro.price=nprice;
		
		for(int i=0;i<prolist.size();i++){
			if(prolist.get(i).num.equals(dnum)){
				prolist.set(i,newPro); //用新对象替代		
			}
		}		
		
		System.out.println("水果信息更新完毕!");	
		System.out.println();
	}	
	
}

4.定义一个学生类Student,包含三个属性姓名、年龄、性别,创建三个学生对象存入ArrayList集合中。

  A:遍历集合遍历输出。

  B:求出年龄最大的学生,让后将该对象的姓名变为:葫芦娃。 

//学生类
class Student 
{
	String sname;  //姓名
	int sage;  //年龄
	String ssex;  //性别	
}
import java.util.ArrayList;
class StudentTest 
{
	public static void main(String[] args) 
	{
		//创建三个学生对象
		Student s1=new Student();
		s1.sname="张春";
		s1.sage=18;
		s1.ssex="男";

		Student s2=new Student();
		s2.sname="王夏";
		s2.sage=19;
		s2.ssex="女";

		Student s3=new Student();
		s3.sname="李秋";
		s3.sage=20;
		s3.ssex="男";

		//学生对象存入ArrayList集合中
		ArrayList<Student> sList=new ArrayList<Student>();
		sList.add(s1);
		sList.add(s2);
		sList.add(s3);

		//遍历集合
		System.out.println("姓名\t年龄\t性别");
		for(int i=0;i<sList.size();i++){			
			System.out.print(sList.get(i).sname+"\t"+sList.get(i).sage+"\t"+sList.get(i).ssex);
			System.out.println();
		}

		//求出年龄最大的学生
		int maxAge=sList.get(0).sage; //默认第一个同学最大

		for(int i=1;i<sList.size();i++){			
			if(sList.get(i).sage>maxAge){ 				
				maxAge=sList.get(i).sage; 
			}			
		}

		//最大年龄的改名
		for(int i=0;i<sList.size();i++){
			if(sList.get(i).sage==maxAge){
				sList.get(i).sname="葫芦娃";
			}
		}		

		//遍历修改后集合
		System.out.println();
		System.out.println("修改后的同学们:");
		System.out.println("姓名\t年龄\t性别");
		for(int i=0;i<sList.size();i++){			
			System.out.print(sList.get(i).sname+"\t"+sList.get(i).sage+"\t"+sList.get(i).ssex);
			System.out.println();
		}

	}
}

 

猜你喜欢

转载自www.cnblogs.com/hzhjxx/p/10031273.html