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

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

ArrayList入门

ArrayList代表的是一种集合

那什么是集合?

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

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

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

集合的种类

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

ArrayList集合怎么学

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

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

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

ArrayList<E>

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

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

例如:

//在创建ArrayList集合对象时
ArrayList list1 = new ArrayList();
 
ArrayList<String> list2 = new ArrayList<String>();
 
//list1这个集合可以存储任意类型的数据
//而list2因为加上了String的约束,所以只能存储String类型的数据
//JDK1.7开始才支持的

图片.png

注意

  • 调用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



目录
相关文章
|
2月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
77 7
|
4月前
|
前端开发 JavaScript 安全
入门Vue+.NET 8 Web Api记录(一)
入门Vue+.NET 8 Web Api记录(一)
163 4
|
1月前
|
JSON BI API
商城上货API接口的实战案例
在商城上货过程中,API接口扮演着至关重要的角色。以下是对商城上货API接口的实战分析,涵盖其主要功能、类型、安全性以及实战案例等方面。
|
1月前
|
XML 数据可视化 API
商品详情数据实战案例,API接口系列
淘宝商品详情数据在电商领域具有广泛的应用价值,而淘宝商品详情API接口则为开发者提供了获取这些数据的重要途径。通过合理利用这些接口和数据,可以提升业务效率、优化用户体验,为电商行业的发展注入新的活力。
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
4月前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
4月前
|
JSON 数据管理 关系型数据库
【Dataphin V3.9】颠覆你的数据管理体验!API数据源接入与集成优化,如何让企业轻松驾驭海量异构数据,实现数据价值最大化?全面解析、实战案例、专业指导,带你解锁数据整合新技能!
【8月更文挑战第15天】随着大数据技术的发展,企业对数据处理的需求不断增长。Dataphin V3.9 版本提供更灵活的数据源接入和高效 API 集成能力,支持 MySQL、Oracle、Hive 等多种数据源,增强 RESTful 和 SOAP API 支持,简化外部数据服务集成。例如,可轻松从 RESTful API 获取销售数据并存储分析。此外,Dataphin V3.9 还提供数据同步工具和丰富的数据治理功能,确保数据质量和一致性,助力企业最大化数据价值。
219 1
|
4月前
|
开发者
告别繁琐代码,JSF标签库带你走进高效开发的新时代!
【8月更文挑战第31天】JSF(JavaServer Faces)标准标签库为页面开发提供了大量组件标签,如`&lt;h:inputText&gt;`、`&lt;h:dataTable&gt;`等,简化代码、提升效率并确保稳定性。本文通过示例展示如何使用这些标签实现常见功能,如创建登录表单和展示数据列表,帮助开发者更高效地进行Web应用开发。
47 0
|
4月前
|
UED 存储 自然语言处理
【语言无界·体验无疆】解锁Vaadin应用全球化秘籍:从代码到文化,让你的应用畅游世界每一个角落!
【8月更文挑战第31天】《国际化与本地化实战:构建多语言支持的Vaadin应用》详细介绍了如何使用Vaadin框架实现应用的国际化和本地化,提升用户体验和市场竞争力。文章涵盖资源文件的创建与管理、消息绑定与动态加载、日期和数字格式化及文化敏感性处理等方面,通过具体示例代码和最佳实践,帮助开发者构建适应不同语言和地区设置的Vaadin应用。通过这些步骤,您的应用将更加灵活,满足全球用户需求。
62 0
|
4月前
|
API 数据库 UED
全面解析构建高性能API的秘诀:运用Entity Framework Core与异步编程提升Web应用响应速度及并发处理能力的详细指南与实践案例
【8月更文挑战第31天】本文详细介绍了如何利用 Entity Framework Core (EF Core)的异步编程特性构建高性能 API。通过创建基于 EF Core 的 .NET Core Web API 项目,配置数据库上下文,并定义领域模型,文章展示了如何使用异步方法进行数据查询、加载相关实体及事务处理。具体代码示例涵盖了 GET、POST、PUT 和 DELETE 操作,全面展示了 EF Core 异步编程的优势,有助于提升 API 的响应速度和处理能力。
59 0

相关课程

更多
下一篇
DataWorks