Java ArrayList
ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。
ArrayList 继承了 AbstractList ,并实现了 List 接口。
1 | //ArrayList 类位于 java.util 包中,使用前需要引入它,语法格式如下: |
ArrayList 是一个数组队列,提供了相关的添加、删除、修改、遍历等功能。
1、添加元素
将元素插入到指定位置的 arraylist 中
arraylist.add(int index,E element)
- index(可选参数)- 表示元素所插入处的索引值
- element - 要插入的元素
如果 index 没有传入实际参数,元素将追加至数组的最末尾。
2、访问元素
访问 ArrayList 中的元素可以使用 get() 方法:
3、修改元素
如果要修改 ArrayList 中的元素可以使用 set() 方法:
4、删除元素
如果要删除 ArrayList 中的元素可以使用 remove() 方法:
5、计算大小
如果要计算 ArrayList 中的元素数量可以使用 size() 方法:
6、迭代数组列表
我们可以使用 for 来迭代数组列表中的元素:
1
2
3
4
5
6
7
8
9
10
11
12
13
14import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
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 来迭代元素:
1
2
3
4
5
6
7
8
9
10
11
12
13
14import java.util.ArrayList;
public class RunoobTest {
public static void main(String[] args) {
ArrayList<String> sites = new ArrayList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (String i : sites) {
System.out.println(i);
}
}
}
7、ArrayList 排序
Collections 类也是一个非常有用的类,位于 java.util 包中,提供的 sort() 方法可以对字符或数字列表进行排序。
1 | import java.util.ArrayList; |
更多使用方法:
1 | addAll(); //添加集合中的所有元素到 arraylist 中 |
Java LinkedList
链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。
链表可分为单向链表和双向链表。
一个单向链表包含两个值: 当前节点的值和一个指向下一个节点的链接。
一个双向链表有三个整数值: 数值、向后的节点链接、向前的节点链接。
Java LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。
以下情况使用 ArrayList :
- 频繁访问列表中的某一个元素。
- 只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
- 你需要通过循环迭代来访问列表中的某些元素。
- 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
LinkedList 继承了 AbstractSequentialList 类。
LinkedList 实现了 Queue 接口,可作为队列使用。
LinkedList 实现了 List 接口,可进行列表的相关操作。
LinkedList 实现了 Deque 接口,可作为队列使用。
LinkedList 实现了 Cloneable 接口,可实现克隆。
LinkedList 实现了 java.io.Serializable 接口,即可支持序列化,能通过序列化去传输。
1 | // 引入 LinkedList 类 |
如果要进行输出遍历的话,使用ArrayList更加方便,使用LinkedList主要是利用它的链表特性。
如插入开头,插入结尾,删除开头,删除结尾,获取开头元素,获取结尾元素
迭代元素
我们可以使用 for 来迭代数组列表中的元素
也可以使用 for-each 来迭代元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15// 引入 LinkedList 类
import java.util.LinkedList;
public class RunoobTest {
public static void main(String[] args) {
LinkedList<String> sites = new LinkedList<String>();
sites.add("Google");
sites.add("Runoob");
sites.add("Taobao");
sites.add("Weibo");
for (String i : sites) {
System.out.println(i);
}
}
}
常用方法
1 | add(int index, E element); //向指定位置插入元素,默认在链表末尾添加元素 |