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("您已退出");
}
}

3 超市商品管理
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();
} }
}

ArrayList 练习题的更多相关文章
- java ArrayList练习题
package java06; /* *随机产生6的1——33的数字,并存储到列表中,再进行遍历 * */ import java.util.ArrayList; import java.util.R ...
- 第四章 面向对象与IO操作
一.类(类中可以写字段.属性.方法.构造函数)1.定义一个类用关键字class,后面加类名,类名第一个字母用大写,可用private或public修饰符定义访问级别,类可定义在同一命名空间中,也可定义 ...
- JAVA基础知识之练习题——集合
练习一: 创建一个Set集合,保存用户输入的数据 具体代码实现如下面代码中的testSet()方法. 知识点: Set集合的基本特征是元素不允许重复.HashSet不保存元素顺序,LinkedHash ...
- 6、50道JAVA基础编程练习题跟答案
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析 ...
- 50道JAVA基础编程练习题
50道JAVA基础编程练习题 [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析 ...
- java第3天:Scanner,Random,ArrayList
第一章:Scanner从入门到放弃 1 API的概述和使用步骤 API简称应用程序编程接口,是JDK给我们提供好的可以直接使用的类和方法,是程序员随手使用的字典. *** 2 Scanner的概述 2 ...
- J2EE 练习题 - JSON HTTP Service
J2EE 练习题 - JSON HTTP Service 1 要求 2 示例代码 2.1 Server 端 2.2 客户端 - Java 1 要求 在 Tomcat 上布署一个 HTTP Servic ...
- Scanner类、匿名对象、Random类、ArrayList集合、String类、static静态类、math类和Arrays工具类
一.Scanner类 1.除了八种基本数据类型,其他都是引用类型: 引用类型使用三步骤: 2.Scanner类 引用jdk提供的类,Scanner在java.util包下,不在java.lang包(S ...
- 【第一期百题计划进行中,快来打卡学习】吃透java、细化到知识点的练习题及笔试题,助你轻松搞定java
[快来免费打卡学习]参与方式 本期百题计划开始时间:2022-02-09,今日打卡题已在文中标红. 0.本文文末评论区打卡,需要登录才可以打卡以及查看其他人的打卡记录 1.以下练习题,请用对应的知识点 ...
随机推荐
- OGG 11g Checkpoint 详解
OGG Checkpoint 详解 定位中断的位置,下次启动从中断的位置开始恢复. 1.target 端配置: 2.一条记录对应一个replicat 一. Extract Check ...
- 【248】◀▶IEW-Unit13
Unit 13 Technology 流程图讲解 1.model1对应图片讲解 2.Model1范文分析 Model 1 The ice cream making process has five k ...
- VMware设置桥接网络
VMware设置桥接网络 2011-12-30 08:57:04 分类: LINUX 一.桥接网络的基本原理 配置成桥接网络连接模式的虚拟机就当作主机所在以太网的一部分, 虚拟系统和宿主机器的 ...
- 4. docker镜像的概念、管理(查看、下载、删除)
镜像的概念 镜像是一个包含程序运行必要依赖环境和代码的只读文件,它采用分层的文件系统,将每一次改变以读写层的形式增加到原来的只读文件上.镜像是容器运行的基石. 下图展示的是Docker镜像的系统结构. ...
- Spring Data JPA stackoverflow
1.禁止使用lombok 的@Data 注释 使用@Data注释后,默认会重写父类的toString()方法,hashcode()等方法,在往map里存的时候,会根据equals和hashcode方法 ...
- socket网络编程实践要点
1.创建udp的socket句柄 // 当host_port为0时,则表示让操作系统自动分配 bool createUdpSocket(string host_ip,unsigned short ho ...
- 数据可视化系列--svg入门基础(一)
一.前言 1.SVG(Scalable Vector Graphics)可伸缩矢量图形 特点: (1)使用xml格式来定义图形: (2)用来定义web上的使用的矢量图: (3)改变图像尺寸,图片质量不 ...
- MYSQL数据库设计规范11111
MYSQL数据库设计规范 1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成; 命名简洁明确(长度不能超 ...
- window.onerror 捕捉所有的前端error
//[捕捉所有前端error] window.onerror = function (errormessage, url, line, column, error) { console.log(&qu ...
- Python:通过一个小案例深入理解IO多路复用
通过一个小案例深入理解IO多路复用 假如我们现在有这样一个普通的需求,写一个简单的爬虫来爬取校花网的主页 import requests import time start = time.time() ...