LinkedList与ArrayList怎么使用

发布时间:2021-12-18 14:20:10 作者:iii
来源:亿速云 阅读:241

LinkedList与ArrayList怎么使用

在Java编程中,LinkedListArrayList是两种常用的集合类,它们都实现了List接口,但在底层实现和使用场景上有着显著的区别。本文将详细介绍LinkedListArrayList的使用方法,并探讨它们在不同场景下的优缺点。

1. ArrayList简介

ArrayList是基于动态数组实现的集合类。它的底层是一个数组,当数组容量不足时,会自动进行扩容。ArrayList的特点是随机访问速度快,但在中间插入或删除元素时效率较低。

1.1 ArrayList的创建

import java.util.ArrayList;
import java.util.List;

public class ArrayListExample {
    public static void main(String[] args) {
        // 创建一个ArrayList
        List<String> arrayList = new ArrayList<>();

        // 添加元素
        arrayList.add("Apple");
        arrayList.add("Banana");
        arrayList.add("Cherry");

        // 输出ArrayList
        System.out.println(arrayList);
    }
}

1.2 ArrayList的常用方法

// 示例代码
arrayList.add(1, "Orange"); // 在索引1处插入元素
System.out.println(arrayList.get(2)); // 获取索引2处的元素
arrayList.remove(0); // 删除索引0处的元素
System.out.println(arrayList.size()); // 输出列表大小
arrayList.clear(); // 清空列表

1.3 ArrayList的优缺点

2. LinkedList简介

LinkedList是基于双向链表实现的集合类。它的每个元素都包含一个指向前一个元素和后一个元素的引用。LinkedList的特点是插入和删除操作效率高,但随机访问速度较慢。

2.1 LinkedList的创建

import java.util.LinkedList;
import java.util.List;

public class LinkedListExample {
    public static void main(String[] args) {
        // 创建一个LinkedList
        List<String> linkedList = new LinkedList<>();

        // 添加元素
        linkedList.add("Apple");
        linkedList.add("Banana");
        linkedList.add("Cherry");

        // 输出LinkedList
        System.out.println(linkedList);
    }
}

2.2 LinkedList的常用方法

// 示例代码
linkedList.add(1, "Orange"); // 在索引1处插入元素
System.out.println(linkedList.get(2)); // 获取索引2处的元素
linkedList.remove(0); // 删除索引0处的元素
System.out.println(linkedList.size()); // 输出列表大小
linkedList.clear(); // 清空列表

2.3 LinkedList的优缺点

3. ArrayList与LinkedList的比较

3.1 性能比较

操作 ArrayList LinkedList
随机访问 O(1) O(n)
插入/删除(末尾) O(1) O(1)
插入/删除(中间) O(n) O(1)
内存占用 较少 较多

3.2 使用场景

4. 实际应用示例

4.1 使用ArrayList实现数据存储与查询

import java.util.ArrayList;
import java.util.List;

public class ArrayListDemo {
    public static void main(String[] args) {
        List<String> fruits = new ArrayList<>();
        fruits.add("Apple");
        fruits.add("Banana");
        fruits.add("Cherry");

        // 查询元素
        System.out.println("Second fruit: " + fruits.get(1));

        // 遍历元素
        for (String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}

4.2 使用LinkedList实现队列

import java.util.LinkedList;
import java.util.Queue;

public class LinkedListDemo {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();
        queue.offer("Apple");
        queue.offer("Banana");
        queue.offer("Cherry");

        // 出队
        while (!queue.isEmpty()) {
            System.out.println(queue.poll());
        }
    }
}

5. 总结

ArrayListLinkedList各有优缺点,选择哪种集合类取决于具体的应用场景。如果需要频繁读取数据且数据量较大,ArrayList是更好的选择;如果需要频繁插入或删除数据,LinkedList则更为合适。在实际开发中,应根据需求合理选择集合类,以提高程序的性能和效率。

通过本文的介绍,相信读者已经对ArrayListLinkedList的使用有了更深入的了解。在实际编程中,灵活运用这两种集合类,可以大大提高代码的质量和效率。

推荐阅读:
  1. ArrayList与Vector与LinkedList的联系和区别
  2. LinkedList和ArrayList区别

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

linkedlist arraylist

上一篇:Java方法如何使用

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》