Java 集合框架LinkedList
原文:https://www.studytonight.com/java/linkedlist-in-collection-framework.php
Java LinkedList 类提供了LinkedList
数据结构的实现。它使用双向LinkedList
来存储元素。它实现了 List、dequeue 和 Queue 接口,并扩展了 AbstractSequentialList 类。下面是 LinkedList 类的声明。
LinkedList
类声明
public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, Serializable
- LinkedList 类扩展了 AbstractSequentialList,实现了 List、dequeue 和 Queue 接口。
- 它可以用作列表、栈或队列,因为它实现了所有相关的接口。
- 它允许空输入。
- 它本质上是动态的,即在需要时分配内存。因此,可以容易地实现插入和删除操作。
- 它可以包含重复的元素,并且不同步。
- 在
LinkedList
中反向 t 遍历是困难的。 - 在
LinkedList
中,操作很快,因为不需要发生移位。
LinkedList
构造器
LinkedList 类有两个构造器。第一个用于创建空LinkedList
,第二个用于从现有集合创建。
LinkedList() // It creates an empty LinkedList
LinkedList( Collection c) // It creates a LinkedList that is initialized with elements of the Collection c
LinkedList
类示例
让我们举一个例子来创建一个LinkedList
,没有元素被插入,所以它创建了一个空的LinkedList
。见下面的例子。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
// Displaying LinkedLIst
System.out.println(linkedList);
}
}
[]
LinkedList
方法
下表包含LinkedList
的方法。我们可以用它们来操纵它的元素。
| 方法 | 描述 |
| boolean add(E) | 它将指定的元素追加到列表的末尾。 |
| 无效添加(整数索引,E 元素) | 它在列表中的指定位置索引处插入指定元素。 |
| 布尔地址(集合 extends E> c) | 它将指定集合中的所有元素追加到该列表的末尾。 |
| 布尔地址(集合 extends E> c) | 它按照指定集合的迭代器返回的顺序,将指定集合中的所有元素追加到该列表的末尾。 |
| 布尔地址(整数索引,集合 extends E> c) | 它从列表的指定位置开始,追加指定集合中的所有元素。 |
| 见 addFirst(E) | 它在列表的开头插入给定的元素。 |
| 请参阅 addLast | 它将给定的元素追加到列表的末尾。 |
| 清空() | 它从列表中移除所有元素。 |
| 对象克隆() | 它返回一个ArrayList
的浅拷贝。 |
| 布尔包含(对象 0) | 如果列表包含指定的元素,则返回 true。 |
| 迭代器
向LinkedList
添加元素
要将元素添加到LinkedList
中,我们使用add()
方法。它按照插入顺序将元素添加到列表中。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
linkedList.add("Delhi");
linkedList.add("NewYork");
linkedList.add("Moscow");
linkedList.add("Dubai");
// Displaying LinkedList
System.out.println(linkedList);
}
}
[德里、纽约、莫斯科、迪拜]
移除元素
为了从列表中移除元素,我们使用移除指定元素的移除方法。我们还可以传递索引值来移除其中的元素。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
linkedList.add("Delhi");
linkedList.add("NewYork");
linkedList.add("Moscow");
linkedList.add("Dubai");
// Displaying LinkedList
System.out.println(linkedList);
// Removing Elements
linkedList.remove("Moscow");
System.out.println("After Deleting Elements: \n"+linkedList);
// Removing Second Element
linkedList.remove(1);
System.out.println("After Deleting Elements: \n"+linkedList);
}
}
[德里、纽约、莫斯科、迪拜]删除元素后:[德里、纽约、迪拜]删除元素后:[德里、迪拜]
遍历LinkedList
的元素
由于 LinkedList 是一个集合,因此我们可以使用循环来迭代它的元素。在这个例子中,我们正在遍历元素。见下面的例子。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
linkedList.add("Delhi");
linkedList.add("NewYork");
linkedList.add("Moscow");
linkedList.add("Dubai");
// Traversing ArrayList
for(String element : linkedList) {
System.out.println(element);
}
}
}
德里纽约莫斯科迪拜
获取LinkedList
的大小
有时我们想知道一个LinkedList
包含的元素数量。在这种情况下,我们使用size()
然后返回LinkedList
的大小,它等于列表中存在的元素数量。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
linkedList.add("Delhi");
linkedList.add("NewYork");
linkedList.add("Moscow");
linkedList.add("Dubai");
// Traversing ArrayList
for(String element : linkedList) {
System.out.println(element);
}
System.out.println("Total Elements: "+linkedList.size());
}
}
德里纽约莫斯科迪拜总要素:4
排序LinkedList
元素
为了对LinkedList
的元素进行排序,Java 提供了一个类 Collections,它包括一个静态排序方法()。在这个例子中,我们使用排序方法对元素进行排序。
import java.util.*;
class Demo
{
public static void main(String[] args)
{
// Creating LinkedList
LinkedList< String> linkedList = new LinkedList< String>();
linkedList.add("Delhi");
linkedList.add("NewYork");
linkedList.add("Moscow");
linkedList.add("Dubai");
// Sorting elements
Collections.sort(linkedList);
// Traversing ArrayList
for(String element : linkedList) {
System.out.println(element);
}
}
}
德里迪拜莫斯科纽约