You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用ArrayList存储信息?及代码问题:实现多人个人信息存储

Hey there! Let's break down your two questions clearly and with practical examples—no fluff, just working code and explanations.

1. 如何使用ArrayList存储信息

ArrayList是Java里最常用的动态数组实现,能灵活添加、删除元素,比普通数组好用多了。下面是核心操作的分步讲解:

基础步骤与操作

  • 导入包:首先得导入java.util.ArrayList,不然没法用:
    import java.util.ArrayList;
    
  • 创建ArrayList实例:用泛型指定要存储的元素类型(避免类型转换问题),比如存储字符串:
    // 创建一个存储String类型的ArrayList
    ArrayList<String> userNames = new ArrayList<>();
    
    如果要存储自定义对象(比如后面的Person),就写成ArrayList<Person> people = new ArrayList<>();
  • 添加元素:用add()方法,默认加到末尾;也可以指定位置插入:
    userNames.add("Bob"); // 加到末尾
    userNames.add(0, "Alice"); // 插入到索引0的位置
    
  • 访问元素:用get(index)获取指定位置的元素(索引从0开始):
    String firstUser = userNames.get(0); // 得到"Alice"
    
  • 修改元素:用set(index, newElement)替换指定位置的元素:
    userNames.set(1, "Bobby"); // 把索引1的元素改成"Bobby"
    
  • 删除元素:两种方式,按索引删或者按元素值删:
    userNames.remove(0); // 删除索引0的元素
    userNames.remove("Bobby"); // 删除值为"Bobby"的元素(找到第一个匹配的)
    
  • 遍历元素:三种常用方式,选你顺手的:
    // 1. 增强for循环(最简洁)
    for (String name : userNames) {
        System.out.println(name);
    }
    
    // 2. 普通for循环(需要索引时用)
    for (int i = 0; i < userNames.size(); i++) {
        System.out.println("索引" + i + ": " + userNames.get(i));
    }
    
    // 3. Lambda表达式(Java 8+)
    userNames.forEach(name -> System.out.println(name));
    

存储自定义对象的例子

如果要存储个人信息,肯定要先定义一个实体类,比如Person,然后用ArrayList存这个类的对象:

// 先定义Person类
class Person {
    private String name;
    private int age;
    private String email;

    // 构造方法
    public Person(String name, int age, String email) {
        this.name = name;
        this.age = age;
        this.email = email;
    }

    // 重写toString,方便打印对象信息
    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + ", email='" + email + "'}";
    }
}

// 然后创建ArrayList存储Person对象
ArrayList<Person> people = new ArrayList<>();
people.add(new Person("Alice", 25, "alice@example.com"));
people.add(new Person("Bob", 30, "bob@example.com"));

// 遍历打印
for (Person p : people) {
    System.out.println(p);
}
2. 实现可存储单人和多人个人信息的程序

下面是一个完整的可运行程序,包含了单人添加、批量添加和信息展示的功能,直接复制运行就能用:

import java.util.ArrayList;
import java.util.List;

// 定义个人信息实体类
class Person {
    private String name;
    private int age;
    private String phone;

    // 构造方法:初始化个人信息
    public Person(String name, int age, String phone) {
        this.name = name;
        this.age = age;
        this.phone = phone;
    }

    // 重写toString,打印时能看到清晰的信息
    @Override
    public String toString() {
        return "姓名: " + name + " | 年龄: " + age + " | 手机号: " + phone;
    }

    // 如果需要修改属性,可以添加getter和setter,这里暂时省略
}

// 信息管理类:封装添加和展示的逻辑
class PersonInfoManager {
    // 用ArrayList存储所有人员信息
    private ArrayList<Person> personList = new ArrayList<>();

    // 添加单人信息
    public void addSinglePerson(Person person) {
        personList.add(person);
        System.out.println("已添加单人信息: " + person);
    }

    // 添加多人信息(传入List集合)
    public void addMultiplePersons(List<Person> persons) {
        personList.addAll(persons);
        System.out.println("已批量添加" + persons.size() + "条人员信息");
    }

    // 展示所有存储的信息
    public void showAllPersons() {
        if (personList.isEmpty()) {
            System.out.println("当前没有存储任何人员信息");
            return;
        }
        System.out.println("=== 所有人员信息 ===");
        for (int i = 0; i < personList.size(); i++) {
            System.out.println((i+1) + ". " + personList.get(i));
        }
    }
}

// 主程序测试
public class PersonInfoStorage {
    public static void main(String[] args) {
        PersonInfoManager manager = new PersonInfoManager();

        // 测试添加单人
        Person alice = new Person("Alice", 25, "13800138000");
        manager.addSinglePerson(alice);

        // 测试添加多人
        List<Person> batchPersons = new ArrayList<>();
        batchPersons.add(new Person("Bob", 30, "13900139000"));
        batchPersons.add(new Person("Charlie", 28, "13700137000"));
        manager.addMultiplePersons(batchPersons);

        // 展示所有信息
        manager.showAllPersons();
    }
}

程序说明

  • Person类:封装了个人的姓名、年龄、手机号三个属性,重写toString让打印更友好。
  • PersonInfoManager类:把ArrayList的操作封装起来,提供了清晰的方法(添加单人、批量添加、展示所有),代码更整洁。
  • 主方法里做了完整测试,运行后会输出添加成功的提示,然后打印所有存储的信息。

如果运行时遇到报错,检查一下:

  • 有没有正确导入java.util.ArrayList和java.util.List
  • 类的结构是否正确(比如Person类的构造方法参数是否匹配)
  • 年龄是否输入了整数(别传字符串进去)

内容的提问来源于stack exchange,提问作者student

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:40:17