集合学习(二)

这篇博客探讨了LinkedList的特性,如有序插入、数据重复、存储null以及其作为双向链表的数据结构。讲解了研究集合源码的思路,包括继承关系、构造函数等。对比了LinkedList和ArrayList在增删查改操作上的性能差异,并指出LinkedList适用于增删频繁的场景,而ArrayList适合多查询少修改的业务。此外,还提及了Vector作为线程安全的实现类,其底层基于数组且使用synchronized关键字。
摘要由CSDN通过智能技术生成

LinkedList介绍

LinkedList使用示例:

LinkedList<Integer> linkedList = new LinkedList<>();
        linkedList.add(12);
        linkedList.add(23);
        linkedList.add(45);
        linkedList.add(23);
        linkedList.add(null);

        Iterator<Integer> iterator = linkedList.iterator();
        while(iterator.hasNext()){
   
            Integer value = iterator.next();
            System.out.println(value);
        }

具有特征:

  • 1、数据插入有序
  • 2、数据可重复
  • 3、可以存储null
  • 4、底层数据结构是双向链表

研究集合源码的思路:
1、继承关系
2、构造函数
3、扩容时机和扩容机制(LinkedList是双向链表,添加元素直接添加节点即可,不需要考虑扩容机制和时机等)
4、默认值或默认属性
5、底层数据结构
6、常用方法的研究

继承关系:

public class LinkedList<E>
    extends AbstractSequentialList<E>
    implements List<E>, Deque<E>, Cloneable, java.io.Serializable
 
 AbstractSequentialList抽象类继承自AbstractList,该类对通用方法做了实现,linkedlist可以直接继承使用
 实现接口:List、Deque、Cloneable、Serializable
 Deque接口是队列的接口,提供了队列相应的方法

Deque提供了如下方法:
在这里插入图片描述
提供了从头、从尾的增删改查操作
构造函数:

//无参构造函数
public LinkedList
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值