文章目录
多线程,实现不同步,底层是一个数组。
构造方法
- ArrayList()
构造一个初始容量为十的空列表。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//建立一个初始容量为10的空列表,列表中的元素类型不限
ArrayList a = new ArrayList();
//列表中的元素可以为String类型
a.add("aaa");
//列表中的元素可以为int类型
a.add(1);
//遍历输出列表中的所有元素
for(int i=0; i<a.size(); i++) {
System.out.println(a.get(i));
}
}
}
运行结果:
- ArrayList(Collection<? extends E> c)
构造一个包含指定集合的元素的列表,按照它们由集合的迭代器返回的顺序。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> list1 = new ArrayList<>();
list1.add("abc");
list1.add("xyz");
ArrayList<String> list2 = new ArrayList<>(list1);
for(String s : list2){
System.out.println(s);
}
ArrayList<Integer> list3 = new ArrayList<>();
list3.add(1);
list3.add(2);
ArrayList<Integer> list4 = new ArrayList<>(list3);
for(int i : list4){
System.out.println(i);
}
}
}
运行结果:
- ArrayList(int initialCapacity)
构造具有指定初始容量的空列表。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//和第一种方式类似,但是指定初始容量为100
ArrayList array = new ArrayList(100);
array.add("aaa");
array.add(1);
//列表中的元素还可以为其他自创的类
array.add(new People("张三", 18));
//遍历输出列表中的所有元素
for(int i=0; i<array.size(); i++) {
System.out.println(array.get(i));
}
}
}
- 异常:如果指定的初始容量为负
ArrayList array = new ArrayList(-10);
主要方法
boolean add(E e)
说明:将指定的元素追加到此列表的末尾。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
//建立一个容量为100的列表
ArrayList array = new ArrayList(100);
//在末尾添加元素
array.add("aaa"); //位置0
array.add(1); //位置1
//输出列表
System.out.println(array);
//在末尾添加元素
array.add(32.12); //位置2
System.out.println(array);
}
}
输出结果:
void add(int index, E element)
- 说明:在此列表中的指定位置插入指定的元素。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//在索引1位置插入元素 赵四
arraylist.add(1, "赵四");
for(String s : arraylist) {
System.out.println(s);
}
}
}
void clear()
- 说明:从列表中删除所有元素。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//在索引1位置插入元素 赵四
arraylist.add(1, "赵四");
//清空
arraylist.clear();
//输出
System.out.println(arraylist);
}
}
boolean contains(Object o)
- 说明:如果此列表包含指定的元素,则返回 true 。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//在索引1位置插入元素 赵四
arraylist.add(1, "赵四");
System.out.println(arraylist.contains("赵四"));
System.out.println(arraylist.contains("刘能"));
}
}
E get(int index)
- 说明:返回此列表中指定位置的元素。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//在索引1位置插入元素 赵四
arraylist.add(1, "赵四");
System.out.println(arraylist.get(2));
System.out.println(arraylist.get(3));
}
}
int indexOf(Object o)
- 说明:返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//在索引1位置插入元素 赵四
arraylist.add(1, "赵四");
System.out.println(arraylist.indexOf("赵四"));
}
}
boolean isEmpty()
- 说明:如果此列表不包含元素,则返回 true 。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//判断是否为空
System.out.println(arraylist.isEmpty());
arraylist.clear();
//判断是否为空
System.out.println(arraylist.isEmpty());
}
}
E remove(int index)
- 说明:删除该列表中指定位置的元素。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//删除索引为2的元素
arraylist.remove(2);
System.out.println(arraylist);
}
}
boolean remove(Object o)
- 说明:从列表中删除指定元素的第一个出现(如果存在)。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
//删除张三
arraylist.remove("张三");
System.out.println(arraylist);
}
}
int size()
- 说明:返回此列表中的元素数。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
System.out.println(arraylist.size());
//删除索引为2的元素
arraylist.remove(2);
System.out.println(arraylist.size());
}
}
Object[] toArray()
- 说明:以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。
import java.util.ArrayList;
public class Main extends ArrayList{
public static void main(String[] args) {
//创建储存对象为字符串的列表
ArrayList<String> arraylist = new ArrayList<>();
arraylist.add("张三");
arraylist.add("李四");
arraylist.add("王二");
String str[] = arraylist.toArray(new String[0]);
for(String s : str) {
System.out.println(s);
}
//创建储存对象为Integer的列表
ArrayList<Integer> arrayList1 = new ArrayList<>();
arrayList1.add(1);
arrayList1.add(2);
arrayList1.add(3);
Integer array[] = arrayList1.toArray(new Integer[0]);
for(int i : array) {
System.out.println(i);
}
}
}
所有方法
修饰符和类型 | 方法 | 说明 |
---|---|---|
boolean | add(E e) | 将指定的元素追加到此列表的末尾。 |
void | add(int index, E element) | 在此列表中的指定位置插入指定的元素。 |
boolean | addAll(Collection<? extends E> c) | 按指定集合的Iterator返回的顺序将指定集合中的所有元素追加到此列表的末尾。 |
boolean | addAll(int index, Collection<? extends E> c) | 将指定集合中的所有元素插入到此列表中,从指定的位置开始。 |
void | clear() | 从列表中删除所有元素。 |
Object | clone() | 返回此 ArrayList实例的浅拷贝。 |
boolean | contains(Object o) | 如果此列表包含指定的元素,则返回 true 。 |
void | ensureCapacity(int minCapacity) | 如果需要,增加此 ArrayList实例的容量,以确保它可以至少保存最小容量参数指定的元素数。 |
void | forEach(Consumer<? super E> action) | 对 Iterable的每个元素执行给定的操作,直到所有元素都被处理或动作引发异常。 |
E | get(int index) | 返回此列表中指定位置的元素。 |
int | indexOf(Object o) | 返回此列表中指定元素的第一次出现的索引,如果此列表不包含元素,则返回-1。 |
boolean | isEmpty() | 如果此列表不包含元素,则返回 true 。 |
Iterator | iterator() | 以正确的顺序返回该列表中的元素的迭代器。 |
int | lastIndexOf(Object o) | 返回此列表中指定元素的最后一次出现的索引,如果此列表不包含元素,则返回-1。 |
ListIterator | listIterator() | 返回列表中的列表迭代器(按适当的顺序)。 |
ListIterator | listIterator(int index) | 从列表中的指定位置开始,返回列表中的元素(按正确顺序)的列表迭代器。 |
E | remove(int index) | |
boolean | remove(Object o) | 从列表中删除指定元素的第一个出现(如果存在)。 |
boolean | removeAll(Collection<?> c) | 从此列表中删除指定集合中包含的所有元素。 |
boolean | removeIf(Predicate<? super E> filter) | 删除满足给定谓词的此集合的所有元素。 |
protected void | removeRange(int fromIndex, int toIndex) | 从这个列表中删除所有索引在 fromIndex (含)和 toIndex之间的元素。 |
void | replaceAll(UnaryOperator operator) | 将该列表的每个元素替换为将该运算符应用于该元素的结果。 |
boolean | retainAll(Collection<?> c) | 仅保留此列表中包含在指定集合中的元素。 |
E | set(int index, E element) | 用指定的元素替换此列表中指定位置的元素。 |
int | size() | 返回此列表中的元素数。 |
void | sort(Comparator<? super E> c) | 使用提供的 Comparator对此列表进行排序以比较元素。 |
Spliterator | spliterator() | 在此列表中的元素上创建late-binding和故障快速 Spliterator 。 |
List | subList(int fromIndex, int toIndex) | 返回此列表中指定的 fromIndex (包括)和 toIndex之间的独占视图。 |
Object[] | toArray() | 以正确的顺序(从第一个到最后一个元素)返回一个包含此列表中所有元素的数组。 |
T[] | toArray(T[] a) | 以正确的顺序返回一个包含此列表中所有元素的数组(从第一个到最后一个元素); 返回的数组的运行时类型是指定数组的运行时类型。 |
void | trimToSize() | 修改这个 ArrayList实例的容量是列表的当前大小。 |