博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSe实现List存对象类型并增删改查
阅读量:7081 次
发布时间:2019-06-28

本文共 3217 字,大约阅读时间需要 10 分钟。

hot3.png

#用java实现简单的控制台程序,练习List集合的ArrayList使用方法,要求在list里存储的类型是自定义的对象。 这里简单写一个购物车的增删改查 首先是编写商品类啊,

package day0606;public class Goods {	private String no;	private String name;	private double price;	private int num;		public String getNo() {		return no;	}	public void setNo(String no) {		this.no = no;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public double getPrice() {		return price;	}	public void setPrice(double price) {		this.price = price;	}	public int getNum() {		return num;	}	public void setNum(int num) {		this.num = num;	}	@Override	public String toString() {		return "Goods [no=" + no + ", name=" + name + ", price=" + price + ", num=" + num + "]";	}}

其次是写方法类,把增删改查的方法都放到这个类中,

package day0606;import java.util.ArrayList;import java.util.List;public class Car {	Goods good = new Goods();	List
list = new ArrayList<>(); //添加 public void addGoods(String no,String name,double price,int num) { Goods good = new Goods(); good.setNo(no); good.setName(name); good.setPrice(price); good.setNum(num); list.add(good); } //修改 价格和数量 public void updateGoods(String no,double price,int num) { for(int i = 0;i < list.size();i ++) { good = list.get(i); if(good.getNo().equals(no)) { good.setPrice(price); good.setNum(num); break; } } } //删除 需要编号 public void delGoods(String no) { for(int i = 0;i < list.size();i ++) { good = list.get(i); if(good.getNo().equals(no)) { list.remove(i); break; } } } //查询 遍历 public void getGoods() { for(Goods a:list) { System.out.println(a); } }}

最后编写含有主函数的测试类啊,把上边的方法类中的方法都实现一次,

package day0606;import java.util.Scanner;public class TestCar {	public void menu() {		System.out.println("***************菜单页面*******************");		System.out.println("1.添加2.修改价格和数量3.删除商品4.查询全部5.退出");		System.out.println("****************************************");		System.out.print("*请输入选择的操作:");	}	public static void main(String[] args) {		TestCar tc = new TestCar();		Car car = new Car();		Scanner sca = new Scanner(System.in);		String inputNoName,no,name;		double inputPrice,price;		int inputNum,num;		while(true) {			tc.menu();			inputNum = sca.nextInt();			switch(inputNum) {			case 1:				//添加				System.out.print("*输入要插入的编号:");				no = sca.next();				System.out.print("*输入商品名称:");				name = sca.next();				System.out.print("*输入商品价格:");				price = sca.nextDouble();				System.out.print("*输入商品数量:");				num = sca.nextInt();				car.addGoods(no,name,price,num);				System.out.println("成功添加商品");				break;			case 2:				//修改				System.out.println("*输入要修改的编号:");				no = sca.next();				System.out.print("*商品价格修改为:");				price = sca.nextDouble();				System.out.print("*商品数量修改为:");				num = sca.nextInt();				car.updateGoods(no,price,num);				break;			case 3:				//删除				System.out.print("*输入要删除的商品编号:");				no = sca.next();				car.delGoods(no);				System.out.println("成功删除!");				break;			case 4:				//查询全部商品				car.getGoods();				break;			case 5:				//退出				System.out.println("退出系统");				System.exit(0);			}		}	}}

完成!! ps: 如果你在执行添加操作的时候发现啊,之前添加的东西都被最后一次添加的东西覆盖了,怎么办啊? 你想啊,list里每次存的都是一个商品的对象的引用名(代表对象的地址),你每次的地址都一样当然就都覆盖了,所以要做到每次添加都new一个新对象用来存储新的信息。

转载于:https://my.oschina.net/finchxu/blog/3059743

你可能感兴趣的文章
html怎么对多个td应用样式,html – 如何将样式类应用于td类?
查看>>
Proxmox集群ceph报“ceph 1pg inconsistent”错误解决备忘
查看>>
多级菜单系统安装维护shell脚本实现企业级案例
查看>>
那些年,我玩过的操作系统
查看>>
Lync Server 2013标准版升级Skype for Business Server 2015实战(上)
查看>>
新浪、万网前系统架构师高俊峰:统一监控报警平台架构设计思路
查看>>
2011-9-25俱乐部活动
查看>>
JMeter正则表达式提取器
查看>>
Nginx
查看>>
How To Enable‘root’Account Login Solaris 11 Directly
查看>>
利用 http协议代替ftp协议进行数据传输
查看>>
写一个监控平台的思路总结和实践
查看>>
LoadRunner socket脚本开发问题合集
查看>>
试玩win8体验新特性(翻译)
查看>>
一次带大字段表记录暴增(LOBSEGMENT)引发的悲剧
查看>>
MySql 源码安装
查看>>
rmlv出错处理一例
查看>>
MongoDB学习初步
查看>>
sccm 2007 r2 step by step 之十二 操作系统分发part1
查看>>
Tokyo Tyrant基本规范(1)--介绍和安装
查看>>