ArrayList集合

集合的创建

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

基本数据类型

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

byte

Byte

short

Short

Int

Integer

long

Long

float

Float

double

Double

char

Character

boolean

Boolean

方法声明

功能描述

boolean add(Object obj)

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

Object get(int index)

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

int size()

返回集合中的元素个数

​​​​​​​集合的遍历

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

//创建ArrayList集合

//遍历集合

for (int i = 0; i < list.size(); i++) {

//通过索引,获取到集合中每个元素

int n = list.get(i);

System.out.println(n);

}

方法声明

功能描述

boolean add(int index,  Object obj)

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

Object remve(int index)

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

void clear()

清空集合中所有元素

Object set(int index, Object obj)

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

### 关于Java `ArrayList`集合的使用方法、特性及示例 #### 方法概述 对于向`ArrayList`中添加元素的操作,可以通过调用`add()`方法来完成。此操作支持两种形式:一种是在列表末尾追加单个元素;另一种是指定位置插入元素[^1]。 ```java // 创建一个新的ArrayList实例 ArrayList<String> lists = new ArrayList<>(); lists.add("java"); // 向列表末尾添加字符串 "java" lists.add(0, "C"); // 将字符串 "C" 插入到索引为0的位置 lists.add(1, "python"); // 将字符串 "python" 插入到索引为1的位置 System.out.println(lists); ``` 除了上述提到的`add()`方法外,还有用于替换已有元素的方法——`set(int index,E element)`。该方法接收两个参数:目标位置以及新的值,返回被覆盖掉的老值[^2]。 ```java import java.util.ArrayList; public class Main { public static void main(String[] args){ ArrayList<String> list = new ArrayList<>(); list.add("old"); String oldValue = list.set(0,"new"); // 替换第一个位置上的元素 System.out.println(oldValue); // 输出:"old" System.out.println(list.get(0)); // 输出:"new" } } ``` 另外一个重要功能是由`addAll(Collection<? extends E> c)`所提供的批量增加能力。这使得开发者能够一次性将另一个集合中的全部成员加入当前`ArrayList`之中[^3]。 ```java ArrayList<Integer> originalList = new ArrayList<>(Arrays.asList(1, 2)); ArrayList<Integer> additionalElements = new ArrayList<>(Arrays.asList(3, 4)); originalList.addAll(additionalElements); for(Integer num : originalList) { System.out.print(num + " "); } // 打印结果应为:“1 2 3 4 ” ``` #### 特性描述 - **动态大小**:与固定尺寸的传统数组相比,`ArrayList`具备灵活调整容量的能力,在必要时自动增长内部结构以容纳更多项。 - **存储类型**:尽管不能直接保存原始数据类型(如int),但是通过对应的封装器类(例如Integer)间接实现这一点成为可能。此外也适用于用户自定义的对象实例。 - **索引访问效率高**:由于底层采用连续内存布局,因此依据特定下标获取或修改项目非常迅速,平均情况下只需常数级别的时间开销O(1)[^4]。 - **维护插入顺序**:每当有新条目进来都会按照实际发生的先后次序排列,不会打乱原有的序列关系。 - **允许多重出现相同的数据点**:即同一个实体可以在不同的地方多次存在而不会引发异常情况发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值