JavaSE——常用API(3/3)-ArrayList入门、ArratList使用、ArrayList综合案例

目录

ArrayList入门

ArrayList集合怎么学

ArrayList

ArratList使用

ArrayList综合案例

设计菜品类

设计菜品操作类

运行


ArrayList入门

ArrayList代表的是一种集合

那什么是集合?

  • 集合是一种容器,用来装数据,类似于数组。

有数组为什么还要学习集合呢?

  • 数组定义完成并启动后,长度就固定了。
  • 但是这并不符合我们大多数的需求,而集合大小可变,开发中用得更多。

集合的种类

  • HashSet
  • List
  • Map
  • Set
  • TreeSet
  • ArrayList
  • HashMap
  • LinkedHashMap
  • ......

ArrayList集合怎么学

ArrayList集合既然是一种容器,那么自然会提供创建容器对象的方式,以及提供相应的方法对容器进行操作:添加数据删除某个数据修改某个数据获取某个数据

所以我们要学习ArrayList的三点:

  1. 创建对象
  2. 增删查改的方法
  3. 容器的其他特点

ArrayList<E>

  • 是用得最多、最常见的一种集合

尖括号内的E代表了容器可以存储什么数据类型,如果不写则代表可以存储任意数据类型。

例如:

//在创建ArrayList集合对象时
ArrayList list1 = new ArrayList();

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

//list1这个集合可以存储任意类型的数据
//而list2因为加上了String的约束,所以只能存储String类型的数据
//JDK1.7开始才支持的

构造器说明
public ArrayList()创建一个空的集合对象
常用方法名说明
public boolean add(E e)将指定的元素添加到此集合的末尾,返回是否添加成功
public void add(int index,E element)在此集合中的指定位置插入指定的元素
public E get(int index)返回指定索引处的元素
public int size()返回集合中的元素的个数
public E remove(int index)删除指定索引处的元素,返回被删除的元素
public boolean remove(Object o)删除指定的元素,返回删除是否成功
public E set(int index,E element)修改指定索引处的元素,返回被修改的元素

 注意

  • 调用remove方法删除指定的元素而非指定的索引时,会删除出现的第一个指定的元素,不会删除后面与它相同的元素。

ArratList使用

通过完成一个简单的案例来掌握ArrayList的初步使用,

需求

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

  1. 后台使用ArrayList集合表示购物车,存储这些商品名。
  2. 遍历集合中的每个数据,只要这个数据包含了“枸杞”则删除它。
  3. 输出集合看是否已经成功删除了全部枸杞数据了。

package user.ArrayListTest;

import java.util.ArrayList;

public class Test1 {
    public static void main(String[] args) {
        ArrayList<String> shoppingCart = new ArrayList<String>();

        shoppingCart.add("Java入门");
        shoppingCart.add("宁夏枸杞");
        shoppingCart.add("黑枸杞");
        shoppingCart.add("人字拖");
        shoppingCart.add("特级枸杞");
        shoppingCart.add("特级枸杞");
        shoppingCart.add("枸杞子");

        for (int i = shoppingCart.size() - 1; i >= 0; i--) {
            String rs = shoppingCart.get(i);
            if(rs.contains("枸杞")){
                shoppingCart.remove(rs);
            }
        }

        System.out.println(shoppingCart);
    }
}

运行结果:

 

ArrayList综合案例

需求

完成菜品的上架,以及菜品信息浏览功能。

把每一个菜品当成一个对象,所以先要设计一个菜品类来创建菜品对象。

设计菜品类

比较简单地把菜品的基本信息结果写出来即可

package user.ArrayListTest;

public class Cuisine {
    private String CuisineName;  //菜品名称
    private double CuisinePrice; //菜品价格
    private String CuisineDesc;  //菜品描述

    public Cuisine() {
    }

    public Cuisine(String cuisineName, double cuisinePrice, String cuisineDesc) {
        CuisineName = cuisineName;
        CuisinePrice = cuisinePrice;
        CuisineDesc = cuisineDesc;
    }

    public String getCuisineName() {
        return CuisineName;
    }

    public void setCuisineName(String cuisineName) {
        CuisineName = cuisineName;
    }

    public double getCuisinePrice() {
        return CuisinePrice;
    }

    public void setCuisinePrice(double cuisinePrice) {
        CuisinePrice = cuisinePrice;
    }

    public String getCuisineDesc() {
        return CuisineDesc;
    }

    public void setCuisineDesc(String cuisineDesc) {
        CuisineDesc = cuisineDesc;
    }
}

设计完菜品类之后就可以开始设计菜品的操作类了,因为需求是进行菜品的上架,是由用户进行的,所以要通过菜品操作类来执行。

设计菜品操作类

设计菜品的操作类,要完成上架菜品的操作和展示菜品的操作

package user.ArrayListTest;

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

public class CuisineOperator {
    //先创建一个菜品的列表,用于存储用户上架的每一道菜品,也就是接收菜品对象
    private ArrayList<Cuisine> CuisineList = new ArrayList<>();

    //开始上架菜品
    public void addCuisine(){
        //临时创建一个菜品对象,用来接收要上架的菜品信息
        Cuisine food = new Cuisine();

        //录入菜品数据
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入菜品名称:");
        String name = sc.next();
        food.setCuisineName(name);

        System.out.println("请您输入菜品价格:");
        double price = sc.nextDouble();
        food.setCuisinePrice(price);

        System.out.println("请您输入菜品描述:");
        String desc = sc.next();
        food.setCuisineDesc(desc);

        //得到数据后存入菜品清单
        CuisineList.add(food);
    }

    //展示菜品
    public void showAllCuisine(){
        for (int i = 0; i < CuisineList.size(); i++) {
            Cuisine c = CuisineList.get(i);
            System.out.println(c.getCuisineName());
            System.out.println(c.getCuisinePrice());
            System.out.println(c.getCuisineDesc());
            System.out.println("---------------");

        }
    }

    //展示操作界面
    public void start(){
        System.out.println("请选择操作:");
        System.out.println("1.上架菜品");
        System.out.println("2.展示菜品");
        System.out.println("3.退出");

        Scanner sc = new Scanner(System.in);
        System.out.println("请选择您的操作:");
        String command = sc.next();
        switch (command){
            case "1":
                addCuisine();
                break;
            case "2":
                showAllCuisine();
                break;
            case "3":
                System.out.println("欢迎下次再来!");
                return;
            default:
                System.out.println("您输入的命令不存在");
        }

    }

}

运行

package user.ArrayListTest;

public class CuisinePutaway {
    public static void main(String[] args) {
        //1.先设计一个菜品类Cuisine

        //2.设计菜品操作类CuisineOperator
        
        //开始运行这个案例
        CuisineOperator operator = new CuisineOperator();
        operator.start();

    }
}

运行结果:


END


学习自:黑马程序员——JavaSE课程

  • 39
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值