java高级特性 List实现类

List实现类

一、List接口实现类

在这里插入图片描述

List分为ArrayList和LinkedList

ArrayList实现了长度可变的数组,在内存中分配连续的空间遍历元素随机访问元素的效率比较高

LinkedList采用链表存储方式,插入、删除元素时效率比较高

在这里插入图片描述

二、ArrayList集合类

例题在这里插入图片描述

        ArrayList news = new ArrayList();
//先创建ArrayList对象,再使用add方法添加元素or对象
        news.add(newsTitles1);

// ArrayList的size()方法等同于数组的length属性的作用
        System.out.println("长度为" + news.size());
//打印新闻标题
//for遍历
        for (int i = 0; i < arrayList.size(); i++) {
            // Arraylist中的元素都是Object类型的,需要大转小强转
            NewsTitle newsTitle = (NewsTitle) arrayList.get(i);//get(i)等同于list[i]下标,
            System.out.println(newsTitle.getTitle());
        }
//for each 打印
        for (Object obj : arrayList) {
            NewsTitle newsTitle = (NewsTitle) obj;
            System.out.println(newsTitle.getTitle());
        }
  • ArrayList

    • 是List接口的一个具体实现类
    • 实现了可变大小的数组
    • 随机访问和遍历元素时,它提供更好的性能
  • 用到的方法

    • add()
    • size()
    • get()

三、ArrayList常用方法

在这里插入图片描述

以上标红的方法为Collection通用方法add(),size(),contain(),remove()
Collection接口常用通用方法还有: clear()、isEmpty()、iterator()、toArray()

iterator()返回一个迭代器对象,该对象能顺序访问几个中的各个元素

toArray将集合转换为一个高寒集合所有元素的Object类型数组

        //判断列表中是否包含某个元素
        System.out.println(arrayList.contains(newsTitles1));//删除指定位置的列表元素
        arrayList.remove(0);//删除指定元素
        arrayList.remove(newsTitles1);
        System.out.println(arrayList.contains(newsTitles1));
        //清空集合
        arrayList.clear();
        System.out.println(arrayList.size());
        //判断一个集合是否为空
        System.out.println(arrayList.isEmpty());

ArrayList方法总结:

  • 添加元素

    • add(Object o):此方法会在ArrayList末尾添加一个元素,如果添加成功返回true

    • add(int index,Object o):此方法会在指定的index位置插入Object,index不可以超过列表范围为0-list.size(),如果添加位置超过列表范围则会抛出异常IndexOutOfBoundsException,如果在列表中插入,会插入到对应位置,并将其他元素向后挪,

  • 获取元素

    • get(int index):该方法会返回ArrayList中的对应位置的元素,类型为Object,若要打印需要强转到对应类型,index超出列表范围,会抛异常IndexOutOfBoundsException
  • 修改元素

    • set(int index,Object o):用新元素o替换index位置的旧元素,并返回被替换的旧元素
  • 删除元素

    • remove(int index):删除ArrayList中指定的index位置的元素,并返回被删除的元素。索引越界抛异常IndexOutOfBoundsException
    • remove(Object o):删除对应首次出现的元素o,如果对象存在返回true,如果不存在则返回false
  • 查询元素

    • indexof(Object obj):返回指定对象obj在ArrayLi阿提中首次出现的索引,未找到返回-1
    • lastIndexof(Object obj):返回obj最后一次出现的索引,未找到返回-1
  • 获取列表大小

    • size():返回ArrayList中元素的个数返回类型为int
  • 判断是否为空

    • isEmpty():判断ArrayList是否为空,为空则返回true,否则返回false
  • 清空列表

    • clear():溢出ArrayList中所有的元素,使列表为空列表,之后调用size则但会0

四、断点跟踪ArrayList

五、LinkedList集合

例题

在这里插入图片描述

LinkedList独有的方法

  • 添加元素

    • addFirst(object o):将指定元素插入列表的开头
    • addLast(object o):将指定元素插入列表末尾
  • 查找(返回的对象类型为Object类,若有其他需要需要强转)

    • getFirst():直接返回链表的第一个元素,当链表为空的时候回抛出异常NoSuchElementException
    • getLast():直接返回链表的最后一个元素,当链表为空的时候回抛出异常NoSuchElementException
    • peekFirst()&peekLast():查看链表的第一个元素和最后一个元素,不移除它,若链表为空则返回null,可以在不确定链表是否为空的情况下安全获取头元素
  • 删除

    • removeFirst()&removeLast():移除并返回第一个元素和最后一个元素,空链表执行此操作会抛出 NoSuchElementException

**List list = new LinkedList()**父类引用指向子类对象

在使用共有方法时可以用,在使用子类独有方法时,不适用

六、断点跟踪LinkedList

在这里插入图片描述

七、异同

LinkedList与ArrayList-同∶

  • 同为List实现类,元素有序、不唯一、长度可变共有Collection及List的通用方法

LinkedList与ArrayList-异:

  • ArrayList实现了长度可变的数组,在内存中分配连续的空间,遍历元素和随机访问元素的效率比较高
    LinkedList采用链表存储方式,插入、删除元素时效率比较高
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值