Java基础-ArrayList集合的基本使用


1. 创建ArrayList集合对象

ArrayList<String> list = new ArrayList<>();

2. ArrayList常用API

函数含义案例
list.add(value)在集合的末尾增加元素list.add(“张三”);
list.add(index, value)在集合中间的指定位置增加元素list.add(2, “赵六”);
list.get(index)根据索引获取数据list.get(3);
list.size()返回集合元素个数list.size();
list.remove(index)根据索引删除元素 —> 返回删除的元素list.remove(2);
list.remove(value)删除指定的元素【如果有两个一样的数据,默认删除第一次出现的数据】 —> 返回Boolean值list.remove(“张三”);
list.set(index, value)修改索引处的数据 —> 返回值:修改之前的值list.remove(1, “张三”);

3. 案例:购物车【遍历删除】

3.1 需求

需求:现在加入购物车中存储了如下这些商品:Java入门,宁夏黑枸杞,人字拖,特级枸杞,枸杞子。
现在用户不想买枸杞了,选择了批量删除,请完成该需求。
分析:

  1. 创建ArrayList,存储商品名称。
  2. 遍历集合中的数据,只要包含了“枸杞”就删除
  3. 输出查看数据

3.2 代码实现

  • 注意:遍历删除集合列表中的数据需要反向遍历
public static void arrayBuy() {
        ArrayList<String> list = new ArrayList<>();
        list.add("Java入门");
        list.add("宁夏黑枸杞");
        list.add("人字拖");
        list.add("特级枸杞");
        list.add("枸杞子");
        // 注意:遍历集合删除,需要翻着进行遍历
        for (int i = list.size() - 1; i >= 0; i--) {
            if (list.get(i).contains("枸杞")) {
                list.remove(i);
            }
        }
        System.out.println(list);
    }

4. 案例:菜品上架系统

4.1 需求

  1. 上架商品
  2. 展示商品
  3. 操作界面

4.2 代码实现

  • 创建商品实体类
public class Food {
    private String name;
    private double price;
    private String des;

    public Food() {
    }

    public Food(String name, double prices, String des) {
        this.name = name;
        this.price = prices;
        this.des = des;
    }

    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 String getDes() {
        return des;
    }

    public void setDes(String des) {
        this.des = des;
    }
}
  • 创建商品的操作类
public class FoodOperator {
    private ArrayList<Food> foodList = new ArrayList<>();

    // 上架商品
    private void addFood() {
        Food food = new Food();
        Scanner scanner = new Scanner(System.in);
        System.out.print("请您输入菜品的名称:");
        String name = scanner.next();
        food.setName(name);

        System.out.print("请您输入菜品的价格:");
        Double price = scanner.nextDouble();
        food.setPrice(price);

        System.out.print("请您输入菜品的描述:");
        String des = scanner.next();
        food.setDes(des);

        foodList.add(food);
    }

    // 展示菜品
    private void showAllFood() {
        for (int i = 0; i < foodList.size(); i++) {
            Food food = foodList.get(i);
            System.out.println("菜品名称:" + food.getName());
            System.out.println("菜品价格:" + food.getPrice());
            System.out.println("菜品描述:" + food.getDes());
            System.out.println("------------");
        }
    }

    // 操作界面
    public void start() {
        OUT:
        while (true) {
            System.out.println("------ 菜品上架系统 ------");
            System.out.println("1. 上架菜品");
            System.out.println("2. 显示菜品");
            System.out.println("3. 退出系统");
            System.out.print("请输入关键字:");
            Scanner scanner = new Scanner(System.in);
            int keyword = scanner.nextInt();
            switch (keyword) {
                case 1:
                    addFood();
                    break;
                case 2:
                    showAllFood();
                    break;
                case 3:
                    System.out.println("下次再来哦!");
                    break OUT;
                default:
                    System.out.println("请输入正确的关键字!");
                    break;
            }
        }
    }
}
  • 编写测试类
public class ArrayList_demo {
    public static void main(String[] args) {
        FoodOperator operator = new FoodOperator();
        operator.start();
    }
}
  • 结果展示

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monly21

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值