侧边栏壁纸
博主头像
colo

欲买桂花同载酒

  • 累计撰写 1823 篇文章
  • 累计收到 0 条评论

使用ArrayList存储和遍历学生姓名

2025-12-13 / 0 评论 / 4 阅读

题目

使用ArrayList存储和遍历学生姓名

信息

  • 类型:问答
  • 难度:⭐

考点

ArrayList基本操作,泛型使用,集合遍历

快速回答

实现步骤:

  1. 创建泛型为String的ArrayList
  2. 使用add()方法添加学生姓名
  3. 使用增强for循环遍历列表
  4. 打印每个学生姓名

关键代码:

ArrayList<String> list = new ArrayList<>();
list.add("张三");
for(String name : list) {
    System.out.println(name);
}
## 解析

1. 原理说明

ArrayList是Java集合框架中基于动态数组的实现,特点:

  • 自动扩容:当元素超过容量时自动增长(默认扩容50%)
  • 随机访问快:通过索引直接访问元素(时间复杂度O(1))
  • 有序集合:保持元素添加顺序
  • 非线程安全:不适合多线程环境

2. 完整代码示例

import java.util.ArrayList;

public class StudentListExample {
    public static void main(String[] args) {
        // 1. 创建泛型集合(限定元素类型为String)
        ArrayList<String> studentNames = new ArrayList<>();

        // 2. 添加元素
        studentNames.add("王小明");
        studentNames.add("李华");
        studentNames.add("张小雨");

        // 3. 遍历集合(增强for循环)
        System.out.println("学生名单:");
        for (String name : studentNames) {
            System.out.println(" - " + name);
        }

        // 4. 获取集合大小
        System.out.println("总人数: " + studentNames.size());
    }
}

3. 最佳实践

  • 始终使用泛型:避免运行时类型错误,如ArrayList<String>
  • 优先选择增强for循环:语法简洁且避免索引越界
  • 预估初始容量:大数据量时用new ArrayList(int initialCapacity)提升性能
  • 使用isEmpty()判空:比size()==0可读性更好

4. 常见错误

错误示例问题说明正确写法
ArrayList list = new ArrayList();未使用泛型,需强制类型转换ArrayList<String> list = ...
for(int i=0; i<=list.size(); i++)索引越界(最大索引为size-1)i < list.size()
list.get("张三")get()只能接收索引参数list.indexOf("张三")

5. 扩展知识

  • 遍历方式对比
    • 增强for循环:只读遍历时推荐
    • 迭代器(Iterator):需要删除元素时使用
    • 普通for循环:需要索引时使用
  • 与数组互转
    // ArrayList转数组
    String[] array = studentNames.toArray(new String[0]);
    
    // 数组转ArrayList
    ArrayList<String> list = new ArrayList<>(Arrays.asList(array));
  • 其他常用方法
    • contains("李华"):检查元素是否存在
    • remove(1):删除索引1的元素
    • set(0, "赵强"):替换索引0的元素