目录

一、ArrayList 是什么?

二、ArrayList 基础操作

ArrayList 增删改查、遍历操作

运行结果

核心知识点

三、ArrayList 存储自定义对象项目

toString () 方法

1、JavaBean 实体类:Student.java(封装学生数据)

2、集合操作类:StudentList.java

运行结果

四、JavaWeb 单对象传递项目

1、商品实体类:Product.java

2、Servlet 业务类:ProductServlet.java

3、JSP 展示页面:product.jsp

运行结果

五、JavaWeb ArrayList 集合传递项目

1、Servlet 集合封装类:StudentServlet.java

2、JSP 集合遍历页面:elBean.jsp

运行结果


一、ArrayList 是什么?

ArrayList 是 Java 中的集合,底层是一个可以自动扩容的动态数组

使用 ArrayList 时,需要导包:import java.util.ArrayList;

特点:有序、可重复、查询快、支持存储任意类型数据。

二、ArrayList 基础操作

ArrayList 增删改查、遍历操作

package com.example.javabeannew;

import com.example.Productjavabean.Product;
import java.util.ArrayList;

public class ArrayListdemo {
    public static void main(String[] args) {
        // 1. 创建多种类型的集合对象
        ArrayList<Student> studentArrayLis =new ArrayList<Student>();
        ArrayList<String> stringArrayList =new ArrayList<String>();
        ArrayList<Integer> intArrayList=new ArrayList<Integer>();
        ArrayList<Float> floatArrayList=new ArrayList<Float>();
        ArrayList<Product> productArrayList=new ArrayList<Product>();
        
        // 2. 添加数据:add()方法
        stringArrayList.add("张三");
        stringArrayList.add("李四");
        stringArrayList.add("王五");

        // 3. 获取集合长度:size()方法
        System.out.println("集合元素个数:"+stringArrayList.size());

        // 4. 根据下标获取元素:get()
        String first = stringArrayList.get(0);
        System.out.println("第一个元素:"+first);

        // 5. 修改元素:set(下标, 新值)
        stringArrayList.set(1, "赵六");
        System.out.println("修改后下标1的元素:"+stringArrayList.get(1));

        // 6. 删除元素:remove(下标)
        stringArrayList.remove(1);
        System.out.println("删除后下标1的元素:"+stringArrayList.get(1));
        
        //遍历集合元素:
        // 7. 方法一,使用下标方式去遍历
        System.out.println("-------------------普通for遍历-------------------");
        for (int i = 0; i < stringArrayList.size(); i++) {
            System.out.println(stringArrayList.get(i));
        }

        // 8. 方法二,增强的方式
        System.out.println("-------------------增强for遍历-------------------");
        for (String str : stringArrayList) {
            System.out.println(str);
        }
    }
}

运行结果

在代码空白处右击,绿色三角运行

核心知识点

知识点 说明
存储类型 可存储字符串、整数、浮点数、自定义对象等任意类型
核心方法

add():添加元素

size():获取集合长度

get():根据下标查询元素

set():修改指定下标元素

remove():删除指定下标元素

遍历方式

普通 for 循环:通过下标遍历

增强 for 循环:语法简洁,推荐使用


三、ArrayList 存储自定义对象项目

toString () 方法

  • 对象转换成字符串,方便打印、查看内容
  • 如果不重写,打印对象会输出内存地址
  • 重写后,打印对象会输出属性值

1、JavaBean 实体类:Student.java(封装学生数据)

package com.example.javabeannew;
public class Student {
    // 私有成员变量
    private String name;
    private int age;
    private double score;
    
    // 无参构造
    public Student() {
    }
    
    // 有参构造
    public Student(String name,int age,int score){
        this.name=name;
        this.age=age;
        this.score=score;
    }

    // 重写toString方法:打印对象时显示属性
    public String toString(){
        return "Student{"+
                "name='"+name+'\''+
                ",age="+age+
                ",score="+score+
                '}';
    }
   


    // get/set方法
    public String getName() {return name;}
    public void setName(String name) {this.name = name;}
    public int getAge() {return age;}
    public void setAge(int age) {this.age = age;}
    public double getScore() {return score;}
    public void setScore(double score) {this.score = score;}
}

2、集合操作类:StudentList.java

package com.example.javabeannew;
import java.util.ArrayList;
public class StudentList {
    public static void main(String[] args) {
        // 创建存储Student对象的集合
        ArrayList<Student> studentArrayList=new ArrayList<Student>();
        
        // 创建学生对象
        Student s1=new Student("张三",18,100);
        Student s2=new Student("李四",18,100);

        // 添加对象到集合
        studentArrayList.add(s1);
        studentArrayList.add(s2);
        studentArrayList.add(new Student("赵六",20,88));

        // 遍历输出所有学生姓名
        for (Student s : studentArrayList) {
            System.out.println(s.getName());
        }
        
        // 条件筛选:年龄为18的学生
        System.out.println("--------------");
        for (Student s : studentArrayList) {
            if (s.getAge()==18) {
                // 若未重写toString(),此处s会输出内存地址,重写后输出学生属性信息
                System.out.println("年龄为18:"+s);
            }
        }
    }
}

运行结果


四、JavaWeb 单对象传递项目

用 Servlet 封装单个 JavaBean 对象,传递到 JSP 页面。

1、商品实体类:Product.java

package com.example.Productjavabean;
public class Product {
    // 私有变量
    private String id;
    private String name;
    private double score;
    private int num;
    
    // 无参构造
    public Product(){
    }
    
    // 有参构造
    public Product(String id, String name, double score, int num) {
        this.id = id;
        this.name = name;
        this.score = score;
        this.num = num;
    }

    // get/set方法
    public String getId() {return id;}
    public String getName() {return name;}
    public double getScore() {return score;}
    public int getNum() {return num;}
    public void setId(String id) {this.id = id;}
    public void setName(String name) {this.name = name;}
    public void setScore(double score) {this.score = score;}
    public void setNum(int num) {this.num = num;}
}

2、Servlet 业务类:ProductServlet.java

package com.example.Productjavabean;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/Product")
public class ProductServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 创建商品对象并赋值
        Product product=new Product();
        product.setId("001");
        product.setName("牛奶");
        product.setScore(5.0);
        product.setNum(60);
        
        // 存入request域,传递到JSP
        req.setAttribute("product",product);
        // 请求转发
        req.getRequestDispatcher("/javabeannew/product.jsp").forward(req, resp);
    }
}

3、JSP 展示页面:product.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>商品详情</title>
</head>
<body>
    <h3>商品详情</h3>
    商品id:${product.id}<br>
    商品名称:${product.name}<br>
    商品价格:${product.score}<br>
    商品数量:${product.num}
</body>
</html>

运行结果

这里要切换回Tomcat再运行


五、JavaWeb ArrayList 集合传递项目

将前三个项目知识点结合:Servlet 封装 ArrayList 集合 → 传递到 JSP → 遍历展示批量对象

1、Servlet 集合封装类:StudentServlet.java

package com.example.javabeannew;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;

@WebServlet("/StudentServlet")
public class StudentServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 创建ArrayList集合,存储多个学生对象
        ArrayList<Student> ss=new ArrayList<Student>();
        ss.add(new Student("张三",18,100));
        ss.add(new Student("李四",18,100));
        
        // 将集合存入request域
        req.setAttribute("stuss",ss);
        // 转发到JSP页面
        req.getRequestDispatcher("/javabeannew/elBean.jsp").forward(req, resp);
    }
}

2、JSP 集合遍历页面:elBean.jsp

<%@ page import="com.example.javabeannew.Student" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>学生列表</title>
</head>
<body>
    <h3>学生列表(ArrayList 集合遍历)</h3>
    <%
        // 获取Servlet传递的集合
        ArrayList<Student> ss=(ArrayList<Student>) request.getAttribute("stuss");
        // 增强for循环遍历集合
        for(Student s:ss){
            out.print(s + "<br>");
        }
    %>
</body>
</html>

运行结果

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐