在 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.
它将字符串 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):在中间添加一个集合.
将 l1 列表插入位置 3。索引大于 3 的其他元素将被偏移。
5)
clear():删除所有元素.
6)
contains(对象 o): 元素 Membership.
boolean b = list.contains(o) |
如果 o 对象属于 list.
8)
ensureCapacity(int capacite):增加容量,确保它可以以最小容量容纳许多元素.
这将增加 10 个元素的容量。
9)
get(int index):将对象返回到一个位置.
system.out.println(list.get(2)); |
此函数显示存储在 list.
10)
indexOf(对象 o):返回 element.
整数变量 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):删除介于开始和结束下标之间的元素.
此过程删除 3 和 8.
15)
retainsAll(Collection<?>c):仅保留集合中的元素 c.
16)
set(int index, Object o):将对象修改到特定位置.
位置 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:数组列表