在 Java 中使用 ArrayList

ArrayList 是一个动态数组,它实现了 List 接口。此接口的用户可以完全控制插入的元素,并按位置访问它们,以及搜索列表中的元素.

ArrayList 实现了 List 的所有方法,不仅如此,该类还有自己的方法,例如操作用于存储列表的数组的大小。此类等效于 Vector.
Arraylist 使用存储数据的数组,该数组具有每次插入元素时自动适应的功能。有一个 ensureCapacity 方法,该方法在添加大量项之前增加 ArrayList 的容量,以确保 size.

该列表由多个线程同时访问。当涉及到修改、插入、删除时,这可能会导致问题,因为另一个线程将访问和更新列表的大小正在进行中。解决方案是使用 Collections.synchronizedList.

列表列表 = Collections.synchronizedList(new ArrayList(...));

要使用 iterator 或 listIterator 类浏览列表,但如果列表已被修改:删除、插入...创建迭代器后,后者将抛出异常 ConcurrentModificationException。解决方案是创建一个互斥,其目的是防止其他线程在创建迭代器后和读取期间访问它。

Constructors

ArrayList 有三个构造函数:

- ArrayList():创建一个初始大小为 10.
- ArrayList(Collection<? 扩展 E> c):从数据集合创建列表,如果集合为 null,则引发异常NullPointerException.
- ArrayList(int capacite):通过设置初始大小创建列表,如果大小为负,则抛出 IllegalArgumentException.

Methods

1) add(Object o):在末尾添加一个项.
list.add(Hello”);

2) add(int indice, Object o): Insert in middle.
list.add(3, e”);
它将字符串 String 插入到第三个位置。

3) addAll(集合 c):添加集合.
ArrayList l1 = 新的 ArrayList();
l1.add(字”);
l1.add(12);
l1.add(10.4f);
list.addAll(l1);
此方法添加另一个列表 l1 在列表末尾 list.

4) addAll(int index, 集合 c):在中间添加一个集合.
list.addAll(3, l1);
将 l1 列表插入位置 3。索引大于 3 的其他元素将被偏移。

5) clear():删除所有元素.

6) contains(对象 o): 元素 Membership.
boolean b = list.contains(o)
如果 o 对象属于 list.

8) ensureCapacity(int capacite):增加容量,确保它可以以最小容量容纳许多元素.
list.ensureCapacity(10);
这将增加 10 个元素的容量。

9) get(int index):将对象返回到一个位置.
system.out.println(list.get(2));
此函数显示存储在 list.

10) indexOf(对象 o):返回 element.
int k = indexOf(o4”);
整数变量 k 将接收对象 o4 第一次出现的索引。我们说得好,只是第一个 occurrence.

11) isEmpty():如果列表为空,则返回 true。
boolean b = list.isEmpty();
如果列表为空,则 b 为 true。

12) remove(对象 o):删除 o.
boolean b = list.remove(o4”);
如果对象存在并已成功删除,则返回 true。

13) removeAll(Collection<?>c):删除集合中作为参数传递的元素。
AarrayList<字符串>lc = 新的 ArrayList<字符串>();
lc 。添加(o1”);
lc 。添加(O2”);
lc 。添加(O3”);
list.removeAll(lc);
它查找元素并删除它们。

14) removeRange( int start, int end):删除介于开始和结束下标之间的元素.
list.removeRange(3,8);
此过程删除 3 和 8.

15) retainsAll(Collection<?>c):仅保留集合中的元素 c.

16) set(int index, Object o):将对象修改到特定位置.
list.set(3, o5”);
位置 3 中的对象已替换为 o5.

17) size():返回元素数。

18) subList(int start, int end):返回开头和结尾之间的片段。

19) toArray():返回一个维度的数组。
String[] t = list.toArray();
t 数组包含列表中的所有对象。当您有一个只接受数组的函数时,此方法很有用,例如.

20) trimToSize():将存储容量降低到最大级别。

如何浏览 ArrayList

您可以使用两种方法浏览 ArrayList:

1) 循环 for

for(int i = 0; i < list.size(); i++)
  system.out.println(列表.get(i));
或者例如,如果我们知道类型:
for(整数:列表)
  system.out.println(数字);

2) 迭代器 + while

迭代器 itr = list.iterator();
while(itr.hasNext())
   system.out.println(itr.next());

Example

import java.util.ArrayList;

public class Test {

public static void main(String[] args) {

//创建一个初始容量为 4
ArrayList str = new ArrayList(4);

//添加
str.add(o1”);
str.add(o2”);
str.add(o3”);
str.add(o4”);

//我们看到的一些方法
System.out.println(index of ”+o2: ”+str.indexOf(o2”));
System.out.println(o3 存在吗?+str.contains(o3”));
System.out.println(o2 已成功删除: ”+str.remove(o2”));
System.out.println(size: ”+str.size());
System.out.println([1, 3] : ”+str.subList(1, 3));

//parcours
for(String s : str)
System.out.println(s);

str.clear();
System.out.println(列表为空?+str.isEmpty());

}
}
引用:
javadoc:数组列表