美文网首页
Java各个集合的特点

Java各个集合的特点

作者: 嘘寒问暖 | 来源:发表于2022-09-06 23:56 被阅读0次

各个集合的特点:

List集合:是一个有序,可以重复数据的集合。它是一个接口,不能被实例化,它有几个子类,ArrayList、LinkedList、Vector、Stack。

当然是学习其子类中的方法:

ArrayList:

ArrayList顾名思义,它是一个数组集合,底层是一个数组,它的特点是,查询效率快,因为它在填装数据的时候,会给每一个数据增加索引,然后可以根据索引来查询,或者删除。它的查询效率比较快的,但是删除新增比较慢。

在ArrayList中间新增或者删除一条数据,会将原有的索引位置打乱,然后再重新排序,这样的过程是比较耗时的,比如数据量比较庞大的时候,就要考虑要不要换个集合。

扩容机制:

在初始化的对象的时候:List arrayList = new ArrayList();如果这个构造函数没有参数,那么就默认是 DEFAULT_CAPACITY 为10,也就是初始化容量是10。当集合的容量不足的时候,就会触发扩容机制,继续添加数据,就会增加适合的容量,然后再把原来的数据拷贝到新的容量当中。这个过程也是比较耗时的。

扩容方式:int newCapacity = oldCapacity + (oldCapacity >> 1),也就是以0.5被扩容,在原有的容量上加上原有容量的一半,即10+10*0.5=15;(这里的位运算左移1位就是除以2,也就是乘以0.5)而这个0.5便是负载因子(扩容因子),当容量到了10的一半,也就是5的时候就开始扩容,扩容到15。

数组的新增和删除都会对数组进行从新数据的拷贝和排序,如果知道数据多少的情况下先设置好初始容量,这样会提供性能。

LinkedList:

LinkedList看字面是一个连接的集合,所以它是一个具有链表结构的结合,它的底层是一个双向链表。链表之间的节点都有互相指向地址值的指针。既然是链表那么按照顺序读取的话就很快,但是就是会有无序读取的情况是比较慢的。查询是一个数num,是先把这个num和链表长度的一半相比较,如果num比较大那么就去链表的尾部去查找。这也和链表的尾插法有关。

相比较ArrayList,在数据量比较大情况下ArrayList的查询效率比较快,而如果删除或者是新增数据的时候LinkedList是个效率比较快。

Vector:

Vector和ArrayList相似,底层也是个数组,不同的是Vector是线程安全的。就是同一时间只能有一个线程访问Vector,当然因为它是线程安全的所以在性能方面会有一些损耗。

扩容机制:与ArrayLIst不同Vector是以原来的1倍进行扩容,原来是10那么就是10+10*1;

Vector里面的elementAt()方法和它的父类List的get()方法效果一致,elementAt()是为了兼容Vector,而get是后来JDK1.2继承了List才有的,两者效果一致。

Stack:

是继承自Vector,底层也是数组,是线程安全的栈。可以使用Vector的所有非私有方法,但作为数据栈类型,不建议使用关于非栈的方法。尽量使用关于数据栈类型的方法,这样不会破坏栈的数据结构。

相关文章

  • Java各个集合的特点

    各个集合的特点: List集合:是一个有序,可以重复数据的集合。它是一个接口,不能被实例化,它有几个子类,Arra...

  • 集合(二)~Set

    一、Set集合概述和特点 1. Set集合概述和特点 java.util.Set 接口和 java.util.Li...

  • Java_集合特点

    Collection 是下面集合的父接口,有自己的方法等 是继承与Iterable接口的 有迭代器 ◆~|--...

  • Iterator遍历集合特点

    Java中使用Iterator来遍历集合元素,Iterator遍历集合元素有以下几个特点: ** Iterator...

  • 2018-04-17

    Java集合 ★★★★★集合框架:用于存储数据的容器。 特点: 1:对象封装数据,对象多了也需要存储。集合用于存储...

  • 面试相关之 Java 集合

    1. Java集合框架中有哪些类?都有什么特点?参考回答:可将Java集合框架大致可分为 Set、List、Que...

  • Java集合框架

    参考:JAVA集合框架中的常用集合及其特点、适用场景、实现原理简介 > https://blog.csdn.net...

  • 集合框架

    Java中集合类的关系图(虚线框是接口 实线框是类) 一、集合 集合:就是用于存储对象地址的。 集合的特点1.用于...

  • 分享一篇大佬的笔记,List集合特点+常见方法讲解,建议收藏!

    List集合 java.util.List接口extends Collection接口 List接口的特点: 有序...

  • Java总结-集合介绍(List,Set,Map)

    前言介绍java的常用集合+各个集合使用用例欢迎转载,请注明作者和出处哦☺参考:1,《Java核心编程技术(第二版...

网友评论

      本文标题:Java各个集合的特点

      本文链接:https://www.haomeiwen.com/subject/cumnnrtx.html