java集合框架(二)LinkedList常见方法的使用

这篇具有很好参考价值的文章主要介绍了java集合框架(二)LinkedList常见方法的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

@[toc]
## 一、什么是LinkedList

LinkedList是Java中的一个双向链表。

它实现了List和Deque接口,在使用时可以像List一样使用元素索引,也可以像Deque一样使用队列操作。

LinkedList每个节点都包含了前一个和后一个节点的引用,因此可以很方便地在其中进行节点的插入、删除和移动。

相比于ArrayList,LinkedList的插入和删除操作效率更高,但是访问元素时效率较低,因为需要遍历链表来寻找目标元素。

LinkedList的使用场景主要是场景是需要频繁执行插入和删除操作且对访问操作的效率要求较低的情况。例如队列、栈等数据结构的实现,或者是需要实现LRU缓存淘汰策略的场景。

## 二、常用的方法

| 返回类型 |方法 |描述 |
|--|--|--|
| boolean | add(E o) |将指定元素追加到此列表的结尾。|
| void | add(int index, E element) | 在此列表中指定的位置插入指定的元素。 |
| boolean | addAll(Collection<? extends E> c) | 追加指定 collection 中的所有元素到此列表的结尾,顺序是指定 collection 的迭代器返回这些元素的顺序。 |
| boolean |addAll(int index, Collection<? extends E> c) | 将指定集合中的所有元素从指定位置开始插入此列表。 |
| void | addFirst(E o) | 将指定元素插入此列表的开头。 |
| void | addLast(E o) |将指定元素追加到此列表的结尾。 |
| void | clear() | 从此列表中移除所有元素。 |
| boolean | contains(Object o) | 如果此列表包含指定元素,则返回 true。 |
| E | get(int index) | 返回此列表中指定位置处的元素。 |
| E | getFirst() | 返回此列表的第一个元素。 |
| E | getLast() | 返回此列表的最后一个元素。 |
| int | indexOf(Object o) | 返回此列表中首次出现的指定元素的索引,如果列表中不包含此元素,则返回 -1。 |
| int |lastIndexOf(Object o) | 返回此列表中最后出现的指定元素的索引,如果列表中不包含此元素,则返回 -1。 |
| ListIterator<E> | listIterator(int index) | 返回此列表中的元素的列表迭代器(按适当顺序),从列表中指定位置开始。 |
| E | peek() | 找到但不移除此列表的头(第一个元素)。 |
| E | remove() | 找到并移除此列表的头(第一个元素)。 |
| E | remove(int index) | 移除此列表中指定位置处的元素。 |
| boolean | remove(Object o) | 移除此列表中首次出现的指定元素。 |
| E | removeFirst() | 移除并返回此列表的第一个元素。 |
| E | removeLast() | 移除并返回此列表的最后一个元素。 |
| E | set(int index, E element) | 将此列表中指定位置的元素替换为指定的元素。 |
| int | size() | 返回此列表的元素数。 |

下面是一个示例代码:

### 2.1 add():
在链表的末尾添加元素。如果需要在指定位置添加元素,则可以使用add(index, element)方法。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

System.out.println(list); // 结果:[apple, banana, orange]
```

### 2.2 remove():
在链表中删除指定元素。如果需要删除指定位置的元素,则可以使用remove(index)方法。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.remove("banana");

System.out.println(list); // 结果:[apple, orange]
```

### 2.3 get():
获取指定位置的元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

String second = list.get(1);

System.out.println(second); // 结果:banana
```

### 2.4 set():
替换指定位置的元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.set(1, "grape");

System.out.println(list); // 结果:[apple, grape, orange]
```

### 2.5 clear():
清空链表中的所有元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.clear();

System.out.println(list); // 结果:[]
```

### 2.6 size():
返回链表中的元素数量。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

int size = list.size();

System.out.println(size); //结果:3
```

### 2.7 contains():
判断链表中是否包含指定元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

boolean hasApple = list.contains("apple");

System.out.println(hasApple); //结果: true
```

### 2.8 addFirst():
在链表的头部插入元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.addFirst("pear");

System.out.println(list); // 结果:[pear, apple, banana, orange]
```

### 2.9 addLast():
在链表的尾部插入元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.addLast("pear");

System.out.println(list); // 结果:[apple, banana, orange, pear]
```

### 2.10 getFirst():
获取链表的第一个元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

String first = list.getFirst();

System.out.println(first); // 结果:apple
```

### 2.11 getLast():
获取链表的最后一个元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

String last = list.getLast();

System.out.println(last); // 结果:orange
```

### 2.12 removeFirst():
移除链表的第一个元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.removeFirst();

System.out.println(list); // 结果:[banana, orange]
```

### 2.13 removeLast():
移除链表的最后一个元素。

代码演示:

```java
LinkedList<String> list = new LinkedList<>();
list.add("apple");
list.add("banana");
list.add("orange");

list.removeLast();

System.out.println(list); // 结果:[apple, banana]
```

所有代码演示的,运行结果:

```java
[apple, banana, orange]
[apple, orange]
banana
[apple, grape, orange]
[]
3
true
[pear, apple, banana, orange]
[apple, banana, orange, pear]
apple
orange
[banana, orange]
[apple, banana]
```文章来源地址https://www.toymoban.com/news/detail-747658.html

到了这里,关于java集合框架(二)LinkedList常见方法的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java】LinkedList 集合

    LinkedList集合特点 LinkedList 底层基于双向链表实现增删 效率非常高,查询效率非常低。 LinkedList源码解读分析 LinkedList 是双向链表实现的 List LinkedList 是非线程安全的(线程是不安全的) LinkedList 元素允许为null,允许重复元素 LinkedList 是基于链表是实现的,因此插入删除效率高

    2024年02月07日
    浏览(44)
  • 什么是Java集合框架,它有哪些常用的集合类?

    Java集合框架是一个非常实用的工具,它可以帮助我们更方便地处理数据。在Java中,集合类是一种特殊类型的对象,它们可以存储多个对象,并提供一些常用的操作方法,例如添加、删除、查找等。 Java集合框架它是一组用于处理数据结构的工具类,包括数组、列表、映射、堆

    2024年02月13日
    浏览(55)
  • Java集合之LinkedList源码篇

    ☆* o(≧▽≦)o *☆嗨~我是小奥🍹 📄📄📄个人博客:小奥的博客 📄📄📄CSDN:个人CSDN 📙📙📙Github:传送门 📅📅📅面经分享(牛客主页):传送门 🍹文章作者技术和水平有限,如果文中出现错误,希望大家多多指正! 📜 如果觉得内容还不错,欢迎点赞收藏关注哟!

    2024年01月16日
    浏览(43)
  • Java:ArrayList集合、LinkedList(链表)集合的底层原理及应用场景

    入队 出队 压栈(push),addFirst可以替换成push,官方专门为压栈写了push的API 出栈(pop),removeFirst可以替换成pop,官方专门为出栈写了pop的API

    2024年02月12日
    浏览(40)
  • Java集合篇之深入解析LinkedList

    作为ArrayList的同门师兄弟,LinkedList的师门地位逊色不少,除了在做算法题的时候我们会用到它之外,在实际的开发工作中我们极少使用它,就连它的创造者都说:“I wrote it,and I never use it”,想想颇有点好笑,但这并不影响我们去学习它,个人认为它底层的链表逻辑对于我

    2024年02月19日
    浏览(39)
  • java源码----集合系列1----ArrayList,linkedList

    底层是一个object数组 Arraylist 是java里面Collection  标准的一个集合,其 底层是一个object数组 。当new一个空参的ArrayList的时候,会默认生成一个空数组。 Arraylist上限是 Integer.MAX_VALUE - 8(Integer.MAX_VALUE  =  2^31-1) ; 超过上限会报内存溢出 这里为什么是Integer.MAX_VALUE-8  ,源码上的解

    2024年02月03日
    浏览(44)
  • Java基础——LinkedList集合实现栈和队列

    (1)LinkedList的特点: 底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首位操作的特有API。 (2)LinkedList集合的特有功能: 方法名称 说明 public void addFirst(E e) 在该列表开头插入指定的元素 public void addLast(E e) 将指定的元素追加到此列表的末尾 publ

    2023年04月12日
    浏览(45)
  • 【JavaDS】浅谈集合LinkedList的使用

    ✨ 博客主页: XIN-XIANG荣 ✨ 系列专栏: 【Java实现数据结构】 ✨ 一句短话: 难在坚持,贵在坚持,成在坚持! LinkedList的底层是双向链表结构,由于链表没有将元素存储在连续的空间中,元素存储在单独的节点中,然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元

    2024年02月22日
    浏览(49)
  • 【JAVA学习笔记】53 - 集合-List类及其子类Collection、ArrayList、LinkedList类

    https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/collection_ https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter14/src/com/yinhai/list_ 目录 项目代码 集合 一、引入 数组 集合 二、集合的框架体系 单列集合        双列集合        Collection类 一、Collection类接

    2024年02月06日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包