JAVA学习-链表

       Java中的链表是一种常见的数据结构,也是Java集合框架中提供的一种实现。Java链表是通过节点(Node)之间的引用来连接起来的,每个节点包含数据元素和指向下一个节点的引用。    

一、在Java中,有两种主要的链表实现:

1. LinkedList(双向链表):

       LinkedList是Java集合框架中的一个类,它实现了List接口,采用双向链表的结构。LinkedList允许快速的元素插入和删除操作,但是访问元素的效率较低,需要遍历整个链表。

示例代码:

 1. import java.util.LinkedList;
 2. public class LinkedListExample {
 3.     public static void main(String[] args) {
 4.         // 创建一个LinkedList对象
 5.         LinkedList<String> linkedList = new LinkedList<>();
 6.         // 向链表中添加元素
 7.         linkedList.add("Apple");
 8.         linkedList.add("Banana");
 9.         linkedList.add("Orange");
10.         // 获取链表中的元素
11.         String fruit = linkedList.get(1);
12.         System.out.println(fruit);
13.         // 在指定位置插入元素
14.         linkedList.add(2, "Grape");
15.         // 删除指定位置的元素
16.         linkedList.remove(0);
17.         // 遍历链表中的元素
18.         for (String item : linkedList) {
19.             System.out.println(item);
20.         }
21.     }
22. }

2. ArrayList(动态数组实现的链表):

       ArrayList是Java集合框架中的另一个类,它也实现了List接口,但是它是基于动态数组实现的。ArrayList的插入和删除操作相对较慢,但是元素的访问效率较高,可以根据索引直接访问元素。

示例代码:

 1. import java.util.ArrayList;
 2. public class ArrayListExample {
 3.     public static void main(String[] args) {
 4.         // 创建一个ArrayList对象
 5.         ArrayList<String> arrayList = new ArrayList<>();
 6.         // 向ArrayList中添加元素
 7.         arrayList.add("Apple");
 8.         arrayList.add("Banana");
 9.         arrayList.add("Orange");
10.         // 获取ArrayList中的元素
11.         String fruit = arrayList.get(1);
12.         System.out.println(fruit);
13.         // 在指定位置插入元素
14.         arrayList.add(2, "Grape");
15.         // 删除指定位置的元素
16.         arrayList.remove(0);
17.         // 遍历ArrayList中的元素
18.         for (String item : arrayList) {
19.             System.out.println(item);
20.         }
21.     }
22. }

       这是Java集合中链表的基本概述和使用方法的示例代码。您可以根据实际需求选择适合的链表实现,来进行数据的操作和处理。

二、链表的特点:

1. 链表可以动态调整大小,不需要预先指定容量。

2. 链表的插入和删除操作效率高,时间复杂度为O(1)。

3. 链表的访问效率较低,时间复杂度为O(n),需要遍历整个链表。

三、链表的使用方法:

1. 创建链表对象:

 1.LinkedList<String> linkedList = new LinkedList<>();

2. 在链表末尾添加元素:

 1. linkedList.add("Apple");
 2. linkedList.add("Banana");
 3. linkedList.add("Orange");

3. 在链表指定位置插入元素:

 1. linkedList.add(1, "Grape");

4. 获取链表中指定位置的元素:

 1. String fruit = linkedList.get(2);

5. 修改链表中指定位置的元素:

 1. linkedList.set(0, "Mango");

6. 删除链表中指定位置的元素:

 1. linkedList.remove(1);

7. 删除链表中指定元素:

 1. linkedList.remove("Banana");

8. 获取链表的大小:

 1. int size = linkedList.size();

完整代码示例:

 1. import java.util.LinkedList;
 2. public class LinkedListExample {
 3.     public static void main(String[] args) {
 4.         LinkedList<String> linkedList = new LinkedList<>();     
 5.         // 在链表末尾添加元素
 6.         linkedList.add("Apple");
 7.         linkedList.add("Banana");
 8.         linkedList.add("Orange");        
 9.         // 在链表指定位置插入元素
10.         linkedList.add(1, "Grape");
11.         // 获取链表中指定位置的元素
12.         String fruit = linkedList.get(2);
13.         System.out.println(fruit);        
14.         // 修改链表中指定位置的元素
15.         linkedList.set(0, "Mango");
16.         // 删除链表中指定位置的元素
17.         linkedList.remove(1);
18.         // 删除链表中指定元素
19.         linkedList.remove("Banana");
20.         // 获取链表的大小
21.         int size = linkedList.size();
22.         System.out.println(size);
23.     }
24. }

以上是链表的基本概述、特点和使用方法的示例代码和说明。您可以根据实际需求,进一步使用链表数据结构来解决问题。

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值