对java链表LinkedList部分自带功能进行了理解与实验

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.LinkedList;

public class Demo02 {
public static void main(String[] args) {
LinkedList<Number> list = new LinkedList<Number>();//定义链表list
LinkedList<Number> list2 = new LinkedList<Number>();//定义链表list2
list.add(1);list.add(2);list.add(3);list.add(4);list.add(5);
list.add(6);list.add(7);list.add(8);list.add(9);list.add(10);
list2.add(10);list2.add(9);list2.add(8);list2.add(7);list2.add(6);
list2.add(5);list2.add(4);list2.add(3);list2.add(2);list2.add(1);
System.out.println(list);
System.out.println(list2);

运行结果

1
2
3
4
5
6
7
8
9
10
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
int a1 = (int) list.getFirst();//取得链表第一个元素
System.out.println(a1);

int a2 = (int) list.getLast();//取得链表最后一个元素
System.out.println(a2);

list.removeFirst();//去除链表中第一个元素
System.out.println(list);

运行结果

1
2
3
4
5
6
7
8
9
10
11
1
10
[2, 3, 4, 5, 6, 7, 8, 9, 10]
list.removeLast();//去除链表中最后一个元素
System.out.println(list);

list.addFirst(1);//从头添加元素数字1
System.out.println(list);

list.addLast(10);//从尾添加元素数字10
System.out.println(list);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
[2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
boolean a3 = list.contains(3);//判断数字3是否存在在链表list中
boolean a4 = list.contains(100);//判断数字100是否存在在链表list中
System.out.println(a3);
System.out.println(a4);

int a5 = list.size();//统计链表的长度
System.out.println(a5);

list.add(1,2.5 );//在链表第二个位置插入数字2.5
System.out.println(list);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
true
false
10
[1, 2.5, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Number a6 = (Number) list.remove(1);//去除链表中第1位置的数字
System.out.println(a6);
System.out.println(list);
System.out.println(list2);

boolean a7 = list.addAll(6, list2);//将list2的所有节点加入到list的第六个节点位置
System.out.println(a7);
System.out.println(list);

list2.clear();//清空list2中所有节点
System.out.println(list2);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2.5
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
true
[1, 2, 3, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 10]
[]
int a8 = (int) list.get(2);//得到第二个节点元素的数字
System.out.println(a8);
list.set(2, 100);

System.out.println(list);//讲链表list中第二个节点的元素数字改成100
list.add(2, 99);

System.out.println(list);//在链表list中第二个节点位置加入数字99
list.remove(2);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[1, 2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 10]
[1, 2, 99, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 10]
[1, 2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 10]
System.out.println(list);//将链表list中第二个节点位置数字移除
boolean a9 = list.isEmpty();//判断list是否为空
boolean a10 = list2.isEmpty();//判断list2是否为空
System.out.println(a9);
System.out.println(a10);

int a11 = list.indexOf(2);//输入一个数字确定其在链表中第一个的位置
System.out.println(a11);

int a12 = list.lastIndexOf(2);//输入一个数字确定其在链表中最后一个的位置
System.out.println(a12);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
false
true
1
14
int a13 = (int) list.peek();//取得链表中第0个节点的元素
System.out.println(a13);

int a14 = (int) list.element();//取得链表中第0个节点的元素
System.out.println(a14);

int a15 = (int) list.pollFirst();//取得链表中第0个节点的元素并去除
System.out.println(a15);
System.out.println(list);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
13
1
1
1
[2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 10]
int a16 = (int) list.pollLast();//取得链表中最后一个节点的元素并去除
System.out.println(a16);
System.out.println(list);

list.offer(11);//在链表中继续加入11这个元素,返回类似add()
System.out.println(list);

list.offerFirst(1);//在链表头加入1这个元素
System.out.println(list);

运行结果

1
2
3
4
5
6
7
8
9
10
11
12
10
[2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9]
[2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 11]
[1, 2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 11]
list.offerLast(12);//在链表末尾加入11这个元素
System.out.println(list);

list.removeFirstOccurrence(2);//去除链表list中元素为数字2的第一个节点
System.out.println(list);

list.removeLastOccurrence(2);//去除链表list中元素为数字2的最后一个节点
System.out.println(list);

运行结果

1
2
3
[1, 2, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 11, 12]
[1, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 7, 8, 9, 11, 12]
[1, 100, 4, 5, 6, 10, 9, 8, 7, 6, 5, 4, 3, 1, 7, 8, 9, 11, 12]