java的链表(LinkedList类)
文章目录java的链表(LinkedList)LinkedList类的增删改查LinkList类的增加(add、addFirst、addLast)LinkedList类的删除(removeFirst、removeLast)ArrayList类的查找(getFirst、getLast、迭代查询)LinkedList的常用方法对ArrayList和LinkedList的选择java的链表(Linked
·
文章目录
java的链表(LinkedList)
Java的LinkedList(链表) 类似于 ArrayList,是一种常用的数据容器。
与 ArrayList 相比,LinkedList 的增加和删除对操作效率更高,而查找和修改的操作效率较低。
引用:
import java.util.LinkedList;
初始化:
LinkedList<E> list = new LinkedList<E>(); // 普通创建方法
//或者
LinkedList<E> list = new LinkedList(Collection<? extends E> c); // 使用集合创建链表
LinkedList类的增删改查
LinkList类的增加(add、addFirst、addLast)
// 引入 LinkedList 类
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<String>();
//普通添加
animals.add("cow");
animals.add("tiger");
animals.add("rabbit");
System.out.println("使用add添加动物后:"+animals);
// 使用 addFirst() 在头部添加元素
animals.addFirst("mouse");
System.out.println("使用addFirst添加动物后"+animals);
animals.addLast("dragon");
System.out.println("使用addLast添加动物后"+animals);
}
}
运行结果如下:
LinkedList类的删除(removeFirst、removeLast)
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<String>();
//普通添加
animals.add("cow");
animals.add("tiger");
animals.add("rabbit");
System.out.println("使用add添加动物后:"+animals);
// 使用 addFirst() 在头部添加元素
animals.addFirst("mouse");
System.out.println("使用addFirst添加动物后"+animals);
animals.addLast("dragon");
System.out.println("使用addLast添加动物后"+animals);
//删除
animals.removeFirst();
System.out.println("使用removeFirst删除动物后"+animals);
animals.removeLast();
System.out.println("使用removeLast删除动物后"+animals);
}
}
执行结果如下:
ArrayList类的查找(getFirst、getLast、迭代查询)
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<String>();
//普通添加
animals.add("cow");
animals.add("tiger");
animals.add("rabbit");
System.out.println("使用add添加动物后:"+animals);
// 使用 addFirst() 在头部添加元素
animals.addFirst("mouse");
System.out.println("使用addFirst添加动物后"+animals);
animals.addLast("dragon");
System.out.println("使用addLast添加动物后"+animals);
animals.removeFirst();
//删除
System.out.println("使用removeFirst删除动物后"+animals);
animals.removeLast();
System.out.println("使用removeLast删除动物后"+animals);
//查找
System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());
System.out.println("使用getLast获取到的动物是:"+animals.getLast());
}
}
执行结果:
或者我们使用迭代的方法,查询链表的所有信息,代码如下:
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<String>();
//普通添加
animals.add("cow");
animals.add("tiger");
animals.add("rabbit");
System.out.println("使用add添加动物后:"+animals);
// 使用 addFirst() 在头部添加元素
animals.addFirst("mouse");
System.out.println("使用addFirst添加动物后"+animals);
animals.addLast("dragon");
System.out.println("使用addLast添加动物后"+animals);
animals.removeFirst();
//删除
System.out.println("使用removeFirst删除动物后"+animals);
animals.removeLast();
System.out.println("使用removeLast删除动物后"+animals);
//查找
System.out.print("使用迭代获取到的动物是:");
for(int i = 0; i < animals.size(); i++){
System.out.print(animals.get(i)+" ");
}
// System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());
// System.out.println("使用getLast获取到的动物是:"+animals.getLast());
}
}
执行结果如下:
或者用for-each的方式迭代也行,运行结果跟上面一样:
import java.util.LinkedList;
public class LinkedListTest {
public static void main(String[] args) {
LinkedList<String> animals = new LinkedList<String>();
//普通添加
animals.add("cow");
animals.add("tiger");
animals.add("rabbit");
System.out.println("使用add添加动物后:"+animals);
// 使用 addFirst() 在头部添加元素
animals.addFirst("mouse");
System.out.println("使用addFirst添加动物后"+animals);
animals.addLast("dragon");
System.out.println("使用addLast添加动物后"+animals);
animals.removeFirst();
//删除
System.out.println("使用removeFirst删除动物后"+animals);
animals.removeLast();
System.out.println("使用removeLast删除动物后"+animals);
//查找
System.out.print("使用迭代获取到的动物是:");
for(String animal : animals){
System.out.print(animal+" ");
}
// for(int i = 0; i < animals.size(); i++){
// System.out.print(animals.get(i)+" ");
// }
// System.out.println("使用getFirst获取到的动物是:"+animals.getFirst());
// System.out.println("使用getLast获取到的动物是:"+animals.getLast());
}
}
LinkedList的常用方法
图片来源于菜鸟教程
对ArrayList和LinkedList的选择
以下情况使用 ArrayList :
- 频繁访问列表中的某一个元素。
- 只需要在列表末尾进行添加和删除元素操作。
以下情况使用 LinkedList :
- 你需要通过循环迭代来访问列表中的某些元素。
- 需要频繁的在列表开头、中间、末尾等位置进行添加和删除元素操作。
更多推荐
已为社区贡献1条内容
所有评论(0)