Java ArrayList集合

本文介绍了ArrayList集合的基本概念、创建方法,展示了如何添加、获取和遍历元素,以及关键的增删改查操作。重点讲解了集合与数组的区别,以及如何在实际编程中灵活运用ArrayList进行数据存储和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ArrayList集合

在前面我们学习了数组,数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变。例如,要保存一个学校的学生,由于不停有新生来报道,同时也有学生毕业离开学校,这时学生的数目很难确定。为了保存这些数目不确定的元素,JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合。在这里,我们先介绍ArrayList集合,其他集合在后续课程中学习。

ArrayList集合是程序中最常见的一种集合,它属于引用数据类型(类)。在ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

集合的创建

创建集合的常用格式在此说明一下:

导包:import java.util.ArrayList;

创建对象:与其他普通的引用数据类型创建方式完全相同,但是要指定容器中存储的数据类型:

ArrayList<要存储元素的数据类型> 变量名 = new ArrayList<要存储元素的数据类型>();

  1. 集合中存储的元素,只能为<>括号中指定的数据类型元素;
  2. “<要存储元素的数据类型>”中的数据类型必须是引用数据类型,不能是基本数据类型;

下面给出8种基本数据类型所对应的引用数据类型表示形式:

基本数据类型

对应的引用数据类型表示形式

byte

Byte

short

Short

Int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

我们通过举几个例子,来明确集合的创建方式:

  1. 存储String类型的元素
ArrayList<String> list = new ArrayList<String>();
  1. 存储int类型的数据
ArrayList<Integer> list = new ArrayList<Integer>(); 
  1. 存储Phone类型的数据
ArrayList<Phone> list = new ArrayList<Phone>();
    1. 集合中常用方法

接下来,我们来学习下ArrayList集合提供的一些常用方法,如下表:

方法声明

功能描述

boolean add(Object obj)

将指定元素obj追加到集合的末尾

Object get(int index)

返回集合中指定位置上的元素

int size()

返回集合中的元素个数

通过代码演示上述方法的使用。

import java.util.ArrayList;

public class ArrayListDemo {

public static void main(String[] args) {

// 创建ArrayList集合

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

// 向集合中添加元素

list.add("stu1");

list.add("stu2");

list.add("stu3");

list.add("stu4");

// 获取集合中元素的个数

System.out.println("集合的长度:" + list.size());

// 取出并打印指定位置的元素

System.out.println("第1个元素是:" + list.get(0));

System.out.println("第2个元素是:" + list.get(1));

System.out.println("第3个元素是:" + list.get(2));

System.out.println("第4个元素是:" + list.get(3));

}

}

强调一点,ArrayList集合相当于是一个长度可变的数组,所以访问集合中的元素也是采用索引方式访问,第一个元素存储在索引0的位置,第二个元素存储在索引1的位置,依次类推。

集合的遍历

通过集合遍历,得到集合中每个元素,这是集合中最常见的操作。集合的遍历与数组的遍历很像,都是通过索引的方式,集合遍历方式如下:ArrayListDemo02.java

import java.util.ArrayList;
public class ArrayListDemo02 {
 public static void main(String[] args) {
 //创建ArrayList集合
 ArrayList<Integer> list = new ArrayList<Integer>();
 //添加元素到集合
 list.add(13);
 list.add(15);
 list.add(22);
 list.add(29);
 //遍历集合
 for (int i = 0; i < list.size(); i++) {
 //通过索引,获取到集合中每个元素
 int n = list.get(i);
 System.out.println(n);
 }
 }
}

 

 

上述代码中,第5行定义了一个可以存储int元素的集合;第7-10行,实现将int类型数值存储到集合中;第12-16行,实现遍历集合元素。这里要强调一点,get方法返回值的类型为集合中元素的类型。

    1. 集合中的常用方法补充

ArrayList集合提供的一些常用方法,如下表:

方法声明

功能描述

boolean add(int index,  Object obj)

将指定元素obj插入到集合中指定的位置

Object remve(int index)

从集合中删除指定index处的元素,返回该元素

void clear()

清空集合中所有元素

Object set(int index, Object obj)

用指定元素obj替代集合中指定位置上的元素

  1. boolean add(int index,  Object obj)
  2. 功能:在集合中指定index位置,添加新元素obj
  3. 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用add(1,“javaWeb”)后,集合list中的元素为[“java”,“javaWeb”,“JavaEE”]。
  4. Object set(int index, Object obj)
  5. 功能:用指定元素obj替代集合中指定index位置的元素
  6. 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用set(0,“javaWeb”)后,集合list中的元素为[“javaWeb”,“JavaEE”]。
  7. Object remve(int index)
  8. 功能:从集合中删除指定index处的元素,返回该元素
  9. 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用remove(0)后,集合list中的元素为[“JavaEE”],返回值为“java”。
  10. void clear()
  11. 功能:清空集合中所有元素
  12. 功能说明:假设集合list中有元素[“java”,“javaEE”],当使用clear()后,集合list中的元素为空[]。

 

### Java ArrayList 集合的使用示例及应用场景 #### 1. **ArrayList 的基本特性** `ArrayList` 是基于动态数组实现的一种 `List` 接口的具体实现类。它的主要特点是能够按照索引快速访问元素,但在插入和删除操作上性能较低,因为它可能需要移动大量元素来保持连续存储结构[^4]。 #### 2. **ArrayList 的典型用法** 以下是 `ArrayList` 基本使用的代码示例: ```java import java.util.ArrayList; public class ArrayListExample { public static void main(String[] args) { // 创建一个 ArrayList 实例 ArrayList<String> list = new ArrayList<>(); // 添加元素到 ArrayList 中 list.add("Apple"); list.add("Banana"); list.add("Orange"); // 获取指定索引处的元素 String fruit = list.get(0); // 返回 "Apple" // 修改指定索引处的元素 list.set(1, "Grapes"); // 将 "Banana" 替换为 "Grapes" // 删除指定索引处的元素 list.remove(2); // 移除 "Orange" // 输出整个列表的内容 System.out.println(list); // 判断列表是否为空 boolean isEmpty = list.isEmpty(); // 获取列表大小 int size = list.size(); // 遍历 ArrayList for (String item : list) { System.out.println(item); } } } ``` 上述代码展示了如何创建、增删改查以及遍历 `ArrayList`。 #### 3. **ArrayList 的应用场景** - **频繁查询场景** 当程序中需要频繁地按索引获取元素时,`ArrayList` 是理想的选择,因为其底层基于数组实现,支持 O(1) 时间复杂度的随机访问。 - **固定长度或少量变动的数据集** 如果数据量相对稳定或者变化较少,则可以选择 `ArrayList` 来管理集合中的对象。 - **单线程环境下的高性能需求** 在单线程环境中,由于不需要考虑线程安全性问题,因此可以直接使用 `ArrayList` 而无需额外同步措施[^1]。 然而需要注意的是,在多线程环境下直接使用 `ArrayList` 可能会带来线程安全问题。此时可以通过以下几种方式解决: - 使用 `Collections.synchronizedList()` 方法包装原有 `ArrayList`; - 或者选用更高效的并发集合类如 `CopyOnWriteArrayList`。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值