List及其子类的详细介绍

本文详细介绍了Java中List接口的特点,包括有序性、索引和元素可重复性,并对比了ArrayList和LinkedList两种实现类的特性。ArrayList基于数组实现,查询快,增删慢;LinkedList使用链表结构,查询慢但增删快。文章还讨论了ArrayList的扩容机制及LinkedList的特有方法,如addFirst/Last、getFirst/Last、removeFirst/Last等,以及作为堆栈的使用示例。

List的特点

java.util.List

        1.有序

        2.有索引

        3.元素可重复

常用的实现类

        java.util.ArrayList

                特点

1.有序

2.有索引

3.元素可重复

4.底层是数组,查询快,增删慢

        java.util.LinkedList

                特点

1.有序

2.有索引

3.元素可重复

4.底层数据结构是链表,查询慢,增删快

ArrayList的扩容机制

当创建集合时,虽然底层会默认给一个长度为10的数组,但拿到的还是长度为0的数组,为了防止new了数组后不添加元素,它延迟扩容,在第一次添加元素时,底层的数组会进行第一次扩容,扩容长度为10.                  

LinkedList特有方法

public class Test{
    public static void main(String[] args) {
        
        //创建LinkedList集合对象
        LinkedList<Integer> list = new LinkedList<>();

        
        //将指定元素插入此列表的结尾
        list.addLast(100);    //当前集合并没有元素,怎么添加都是第一个元素
        list.add(10);
        
        list.addFirst(150);    //将指定元素添加到列表开头
        
        
        //返回此列表的第一个元素
        int i = list.getFirst();
        
        //返回此列表的最后一个元素
        int i1 = list.getLast();

        //移除并返回此列表的第一个元素
        int first = list.removeFirst();
        
        //移除并返回此列表的最后一个元素
        int last = list.removeLast();
        
        //从此列表所表示的堆栈处弹出一个元素    栈是先进后出.压栈执行
        LinkedList<String>  stack = new LinkedList<>();
        
        //压栈    push:将元素推入此列所表示的栈堆
        stack.push("a");
        stack.push("b");
        stack.push("c");
        stack.push("d");
        
        String pop = stack.pop();
        System.out.println(pop);//删除"d"
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值