JavaLinked集合的简单学习LinkedList的简单介绍
1. java.util.LinkedList 集合数据存储的结构是链表结构。LinkedList是⼀个双向链表
2. 在实际开发中,对⼀个集合元素的添加和删除,经常涉及到⾸尾操作,⽽LinkedList就提供了⼤量的⾸尾操作的⽅法LinkedList集合的特点
1. ⽅便元素的添加、删除
2. 元素的查询慢
3. ⾥⾯包括了⼤量⾸尾⾸尾操作的⽅法
注意:LinkedList集合的⽅法不能使⽤多态
为什么说LinkedList集合添加、删除元素⽅便,查询元素慢
1. ⾸先,LinkedList集合数据存储的结构是链表结构
2. ⽽链表是添加、删除元素⽅便,查询元素慢的:
1. 查询慢:链表中地址不是连续的每次查询元素都必须从头开始查询
2. 增删快:链表结构增加/删除⼀个元素对链表的整体结构没有影响,所以增删快
操作集合⾸尾的⽅法、是否为空判断⽅法
public void addFirst(E e):将指定元素插⼊此列表的开头。
public void addLast(E e):将指定元素添加到此列表的结尾。
public E getFirst():返回此列表的第⼀个元素。
public E getLast():返回此列表的最后⼀个元素。
public E removeFirst():移除并返回此列表的第⼀个元素。
public E removeLast():移除并返回此列表的最后⼀个元素。
public void push(E e):将元素推⼊此列表所表⽰的堆栈。
public E pop():从此列表所表⽰的堆处弹出⼀个元素。
public boolean isEmpty():如果列表不包含元素,则返回true
addFirst()和addLast()⽅法
public class DemoLinkedListAddFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>();
// 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList);
// ⽤addFirst⽅法向链表集合开头添加⼀个元素
linkedList.addFirst("开头");
// ⽤addLast⽅法向链表集合开头添加⼀个元素
linkedList.addLast("结尾");
System.out.println(linkedList);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]
[开头, 链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5, 结尾]
getFirst()和getLact()⽅法
import java.util.LinkedList;
public class DemoLinkedListGetFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>();
// 向linkedList添加元素
字符串常量需要new吗linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList);
// 获取此列表的第⼀个元素。
String first = First();
// 获取此列表的最后⼀个元素。
String last = Last();
System.out.println("第⼀个元素:" + first);
System.out.println("最后⼀个元素:" + last);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]第⼀个元素:链表元素0
最后⼀个元素:链表元素5
removeFirst()和removeLast()⽅法
import java.util.LinkedList;
public class DemoLinkedListRemoveFirstLast {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>();
// 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
linkedList.add(3, "链表元素3");
linkedList.add(4, "链表元素4");
linkedList.add(5, "链表元素5");
System.out.println(linkedList);
// 移除并返回此列表的第⼀个元素
String first = veFirst();
// 移除并返回此列表的最后⼀个元素
String last = veLast();
System.out.println("移除的第⼀个元素:" + first);
System.out.println("移除的最后⼀个元素:" + last);
System.out.println("此时的集合:" + linkedList);
}
}
输出结果:
[链表元素0, 链表元素1, 链表元素2, 链表元素3, 链表元素4, 链表元素5]移除的第⼀个元素:链表元素0
移除的最后⼀个元素:链表元素5
此时的集合:[链表元素1, 链表元素2, 链表元素3, 链表元素4] push()和pop()⽅法
说明:
1. push()⽅法和addFirst()⽅法功能⼀样
2. pop()⽅法和removeFirst()⽅法功能⼀样
import java.util.LinkedList;
public class DemoLinkedListPushPop {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>();
// 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
System.out.println("原集合:" + linkedList);
/
/ 将元素推⼊此列表所表⽰的堆栈
linkedList.push("push元素");
System.out.println("push()操作后的集合:" + linkedList);
// 从此列表所表⽰的堆处弹出⼀个元素
linkedList.pop();
System.out.println("push()操作后的集合:" + linkedList);
}
}
输出结果:
原集合:[链表元素0, 链表元素1, 链表元素2]
push()操作后的集合:[push元素, 链表元素0, 链表元素1, 链表元素2] push()操作后的集合:[链表元素0, 链表元素1, 链表元素2] isEmpty()⽅法
import java.util.LinkedList;
public class DemoLinkedListIsEmpty {
public static void main(String[] args) {
// 创建LinkedList链表集合对象
LinkedList<String> linkedList = new LinkedList<>();
boolean b1 = linkedList.isEmpty();
System.out.println("集合是否为空:" + b1);
// 向linkedList添加元素
linkedList.add(0, "链表元素0");
linkedList.add(1, "链表元素1");
linkedList.add(2, "链表元素2");
boolean b2 = linkedList.isEmpty();
System.out.println("集合是否为空:" + b2);
}
}
输出结果:
集合是否为空:true
集合是否为空:false
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论