Java : List 集合接口 : LinkedList 子类

本文探讨了ArrayList和LinkedList在Java中的区别。ArrayList基于数组实现,适合随机访问,但插入和删除操作相对较慢;LinkedList采用链表结构,插入和删除效率高,但随机访问性能较差。在开发中,应根据需求选择,如需频繁增删可选LinkedList,预估大小以提升ArrayList性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LinkedList 子类 ( 5 %)

在List 接口里面还有一个 LinkedList 子类, 这个子类如果向父接口转型的话, 使用的形式和之前的接口没有任何的区别.

案例: 使用 LinkedList

package com.beyond.dhl;

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

public class TestDemo {
	public static void main(String[] args) {
		List<String> all = new LinkedList<String>();
		all.add("张三");
		all.add("李四");
		all.add("王五");
		for (int x = 0; x < all.size(); x++) {
			System.out.println(all.get(x));
		}
	}

}

面试题: 请解释 ArrayList 与 LinkedList 区别 ?

  1. 首先观察一下 ArrayList类的核心代码: 可以发现 ArrayList 里面存放的是一个数组 , 在实例化此类对象的时候, 默认传入了数组的大小, 则里面保存的数组就会开辟一个定长的数组.但是在后面进行数据保存的时候, 发现数组的个数不够了会进行数组的动态扩充.
    所以很明显, 在实际的开发之中, 如果要使用 ArrayList 最好的做法就是设置初始化的大小(以分页的程序为例, 每次只会取出指定行的内容).

构造方法 :

public ArrayList() {
        this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;
    }

常量 :

private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {};
  1. linkedList : 是一个纯粹的链表实现, 与之前编写的链表程序的实现完全一样(比我们的性能高).

总结

ArrayList 封装的是一个数组, LinkedList封装是一个链表实现
时间复杂度上, ArrayList 的时间复杂度为 1, 而 LinkedList 的时间复杂度为 n;

开发之中, 考虑的就是 ArrayList, 如果要考虑性能, 一定要传入初始化大小.

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_大木_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值