ArrayList继承自AbstractList,实现List接口,它是一个动态的可修改容量大小的数组。
使用前引入ArrayList类
import java.util.ArrayList; // 引入 ArrayList 类 ArrayListobjectName =new ArrayList<>(); // 初始化
E:设置objecName的数据类型,只能是引用数据类型
objectName:对象名
ArrayList各类方法:
添加元素:add()
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites);
}
}
访问元素:get()
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.get(1)); // 访问第二个元素
}
}
修改元素:set()
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.set(2, "Wiki"); // 第一个参数为索引位置,第二个为要修改的值
System.out.println(sites);
}
}
删除元素:remove()
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
sites.remove(3); // 删除第四个元素
System.out.println(sites);
}
}
计算元素数量:size()
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
System.out.println(sites.size());
}
}
迭代元素:for(){}
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (int i = 0; i < sites.size(); i++) {
System.out.println(sites.get(i));
}
}
}
for-each
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (String i : sites) {
System.out.println(i);
}
}
}
排序:sort()
import java.util.ArrayList;
import java.util.Collections; // 引入 Collections 类
public class RunoobTest {
public static void main(String[] args) {
ArrayList sites = new ArrayList();
sites.add("Taobao");
sites.add("Wiki");
sites.add("Runoob");
sites.add("Weibo");
sites.add("Google");
Collections.sort(sites); // 字母排序
for (String i : sites) {
System.out.println(i);
}
}
}
二.linkedList(链表)
是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。
单链表
双链表
与 ArrayList 相比,linkedList 的增加和删除的操作效率更高,而查找和修改的操作效率较低。
使用ArrayList的情况:
频繁访问某个元素。
只需在列表末尾对元素进行操作。
使用linkedList的情况:
需要通过循环迭代来访问列表的某个函数。
需要频繁在列表开头中间结尾等位置对元素进行操作。
使用前引入linkedList类
// 引入 linkedList 类 import java.util.linkedList; linkedListlist = new linkedList (); // 普通创建方法 或者 linkedList list = new linkedList(Collection extends E> c); // 使用集合创建链表



