打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java学习:Java中的集合—ArrayList类和LinkedList类

那么今天我们就来认识一下 List 的另外两个子类

Arraylist 类和 LinkedList

ArrayList 类

ArrayList 是 List 的子类,list 又继承了 collection 类。所以很多和 list 类、 collection 类的方法是一样的就不在重复了~

咱们直接上干货~

我们上次说过 list 存储数据的特点是有序(存和取的顺序一致)有索引可以存储重复数据,ArrayList 是 List 的子类所以也有同样的特点~so我们先来说说ArrayList 的去重操作

ArrayList去重

需求:

ArrayList去除集合中字符串的重复值(字符串的内容相同)

思路分析:

1)创建新集合

2)根据传入的集合(老集合)获取迭代器

3)遍历老集合

4)通过新集合判断是否包含老集合中的元素,如果包含就不添加,如果不包含就添加

思路有了,下面我们来实现上面的想法

下面来验证一下我们的去重方法是否正确:

喏~我们成功了

下面挑战一个有难度的练习~

去除ArrayList中重复自定义对象元素

需求:

ArrayList去除集合中自定义对象元素的重复值(对象的成员变量值相同)

思路和上面是一样的就不重复了

先来自定义一个对象类

注意事项:

需要重写 equals() 方法~

因为 contatins() 方法是依赖的是 equals() 方法进行判断的~

验证结果~

LinkedList类

LinkedList类特有功能

public void addFirst(E e) 及 addLast(E e)

addFirst()是从头向链表中添加元素

addLast()是从尾部添加元素

public E getFirst()及getLast()

public E removeFirst()及public E removeLast()

public E get(int index);

数组和链表

简单说一下数组与链表的结构~

数组:

我们可以把数组想象成枪上的弹夹,特点就是弹夹里还有几发子弹一目了然(查询快),发现里面有坏了的子弹想换掉就需要先卸掉上面的子弹才可以(增删慢)

链表:

我们可以把链表想象成由回形针组成的链子,特点就是想要向里面添加回形针特别的简单,(增删快),但是想要找到指定颜色的回形针需要一个一个检查(查询慢)~

有了上面的概念再来看一下

下面的内容~

(可能是面试题呦~)

List的三个子类的特点

ArrayList:

底层数据结构是数组,查询快,增删慢。

线程不安全,效率高。

LinkedList:

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

线程不安全,效率高。

(现在你明白 LinkedList 为什么有头和尾的区别了吧~)

Vector:

底层数据结构是数组,查询快,增删慢。

线程安全,效率低。

Vector相对ArrayList查询慢(线程安全的)

Vector相对LinkedList增删慢(数组结构)

Vector和ArrayList的区别

Vector是线程安全的,效率低

ArrayList是线程不安全的,效率高

共同点:

都是数组实现的

ArrayList和LinkedList的区别

ArrayList底层是数组结果,查询和修改快

LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢

共同点:

都是线程不安全的

List有三个子类,我们到底使用谁呢?

查询多的情况用ArrayList

增删多的情况用LinkedList

如果都多就用ArrayList

呼~今天的内容有点多

小伙伴们慢慢消化一下哈~

我是萌新娜娜

立志做一个不翻车的老司机

学习Java的路上请多多指教

大家如果想要更深入了解java相关知识,私信我回复:【Java】 即可知道你们想要知道的java相关问题

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Java中的集合类综述
图解集合3:CopyOnWriteArrayList
List的三个子类的特点
两万字长文读懂 Java 集合!
java 常用集合list与Set、Map区别及适用场景总结
花了20天的时间给粉丝整理的一套"最全"的Java求职笔记(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服