在 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”); |
3) addAll(集合 c):添加集合.
ArrayList l1 = 新的 ArrayList(); l1.add(字”); l1.add(12); l1.add(10.4f); list.addAll(l1); |
4) addAll(int index, 集合 c):在中间添加一个集合.
list.addAll(3, l1); |
5) clear():删除所有元素.
6) contains(对象 o): 元素 Membership.
boolean b = list.contains(o) |
8) ensureCapacity(int capacite):增加容量,确保它可以以最小容量容纳许多元素.
list.ensureCapacity(10); |
9) get(int index):将对象返回到一个位置.
system.out.println(list.get(2)); |
10) indexOf(对象 o):返回 element.
int k = indexOf(o4”); |
11) isEmpty():如果列表为空,则返回 true。
boolean b = list.isEmpty(); |
12) remove(对象 o):删除 o.
boolean b = list.remove(o4”); |
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); |
15) retainsAll(Collection<?>c):仅保留集合中的元素 c.
16) set(int index, Object o):将对象修改到特定位置.
list.set(3, o5”); |
17) size():返回元素数。
18) subList(int start, int end):返回开头和结尾之间的片段。
19) toArray():返回一个维度的数组。
String[] t = list.toArray(); |
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
ArrayListstr = 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());
}
}