美文网首页Java 杂谈JavaJava学习笔记
JavaSe实现List存对象类型并增删改查

JavaSe实现List存对象类型并增删改查

作者: 虚拟世界的懒猫 | 来源:发表于2019-06-08 22:58 被阅读1次

用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<Goods> 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一个新对象用来存储新的信息。

相关文章

  • JavaSe实现List存对象类型并增删改查

    用java实现简单的控制台程序,练习List集合的ArrayList使用方法,要求在list里存储的类型是自定义的...

  • Python学习笔记(四)list、tuple、dict及set

    4种特殊数据类型 1. 列表(list) 有序集合,可增删改查: ·增:append()方法与insert()方法...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • python 列表的基本操作

    list数据类型的特点:1,list 是可变的数据类型,可以进行增删改查,返回的是原list。2,list 是有序...

  • python列表操作方法集合

    本文集合了python中对List列表类型数据的创建和排序、以及List内数据增删改查等操作方式。 List创建 ...

  • Redis 数据结构(增删改查)

    String 增删改查 扩展命令 Hash List Set 和list类型不同的是,不允许出重复元素。 Set包...

  • Java 数据结构与算法

    Java 数据结构 集合框架 Collection 接口(增删改查)List 接口ArrayList:基于数组实现...

  • python-增删改查

    列表的增删改查 list1 = list('this is a list') 增加 list1.append('!...

  • 2018-07-16

    四种组合数据类型的含义、声明、增删改查,遍历 四种组合类型: 列表list: [append/insert/ext...

  • 对象属性的增删改查

    python中对象的属性支持增删改查 属性的增删改查 1.查(获取对象属性) 对象.属性 - 获取指定对象指定属...

网友评论

    本文标题:JavaSe实现List存对象类型并增删改查

    本文链接:https://www.haomeiwen.com/subject/agvwxctx.html