Java集合LinkedList类
一、LinkedList类简介
❀ Java集合框架中的LinkedList是一个双向链表实现的动态数组。它实现了List和Deque接口,因此可以用作列表和队列。
LinkedList使用节点存储数据,每个节点包含一个元素和对前一个和后一个节点的引用。这使得在LinkedList中插入和删除元素非常高效,因为只需要调整相邻节点的引用。
二、LinkedList的特点
-
链表结构:LinkedList使用链表结构来存储元素,因此在列表中插入和删除元素的开销较小,但访问特定索引的元素的开销较大。
-
双向操作:每个节点都包含对前一个和后一个节点的引用,这使得可以双向遍历列表。
-
操作灵活:LinkedList支持在列表的任意位置插入和删除元素,而不需要移动其他元素。
总结就是 LinkedList的任意位置插入和删除元素时效率比较高
三、常见方法使用
语法 | 解释 |
---|---|
add(E o) | 将指定元素追加到此列表的结尾 |
add(int index, E element) | 在此列表中指定的位置插入指定的元素 |
addFirst(E o) | 将给定元素插入此列表的开头 |
addLast(E o) | 将给定元素追加到此列表的结尾 |
remove(),poll() | 找到并移除此列表的第一个元素 |
remove(int index) | 移除此列表中指定位置处的元素 |
remove(int index) | 移除此列表中指定位置处的元素 |
remove(Object o) | 移除此列表中首次出现的指定元素 |
get(int index) | 返回此列表中指定位置处的元素 |
get First() | 返回此列表的第一个元素 |
get Last() | 返回此列表的最后一个元素 |
set(int index, E element) | 将此列表中指定位置的元素替换为指定的元素 |
peek() | 找到但不移除此列表的头(第一个元素) |
poll() | 找到并移除此列表的头(第一个元素 |
contains(Object o) | 如果此列表包含指定元素,则返回 true |
3.0、创建创建LinkedList对象:
LinkedList<Object> list = new LinkedList<>();
3.1、添加元素(add):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("张三");
list.add("李四");
System.out.println(list);
}
}
输出效果:
3.2、获取指定位置的元素(get):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("张三");
list.add("李四");
String element = list.get(1);
System.out.println(element);
}
}
输出效果:
3.3、 设置指定位置的元素(set):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("Hello");
list.add("World");
list.set(1, "Java");
System.out.println(list);
}
}
输出效果:
3.4、删除指定位置的元素(remove):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("Hello");
list.add("World");
list.remove(1);
System.out.println(list);
}
}
输出效果:
3.5、获取列表的大小(size):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("Hello");
list.add("World");
int size = list.size();
System.out.println(size);
}
}
代码效果:
3.6、判断列表是否包含某个元素(contains):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("Hello");
list.add("World");
boolean contains = list.contains("Java");
System.out.println(contains);
}
}
代码效果:
3.7、清空列表(clear):
package OOP6上课内容;
import java.util.LinkedList;
public class test {
public static void main(String[] args) {
LinkedList <Object>list = new LinkedList<>();
list.add("Hello");
list.add("World");
list.clear(); //清空列表内容
System.out.println(list);
}
}
代码效果:
四、LinkedList类的遍历方法
LinkedList类
是Java集合框架中的一种双向链表实现
。它提供了以下几种遍历方法:
4.1、for-each循环遍历:
for-each循环可以直接遍历链表中的所有元素,无需使用迭代器。以下是一个简单的示例:
@Test
public void test1() {
LinkedList a = new LinkedList();
a.add("张三");
a.add("李四");
//增强循环
int index = 0;
for (Object val : a) {
System.out.println( index + " " + val);
index++;
}
}
代码效果:
4.2、迭代器 Iterator循环遍历:
通过使用迭代器,可以逐个访问链表中的元素。以下是一个简单的示例:
@Test
public void test2(){
LinkedList a = new LinkedList();
a.add("张三");
a.add("李四");
//迭代器 Iterator的使用
int index1 = 0;
Iterator iteA = a.iterator();
while (iteA.hasNext()){
String name=iteA.next().toString();
System.out.println(index1+" ------ "+name);
index1++;
}
}
效果演示:
4.3、for循环遍历:
@Test
public void test3(){
LinkedList a = new LinkedList();
a.add("张三");
a.add("李四");
//循环方法
for (int i = 0; i < a.size(); i++) {
System.out.println(i+" ~~~~~ "+a.get(i));
}
}
代码效果:
在本文中,我们详细介绍了Java集合框架中LinkedList的常见方法以及它的几种循环方式。通过学习这些方法,我们可以更好地理解和使用LinkedList类来存储和操作数据。
LinkedList是一个双向链表,它实现了List接口。
通过掌握这些方法,我们可以更有效地使用LinkedList类来处理各种数据操作需求。希望本文对您有所帮助!❀❀