美文网首页
Java集合类快速了解

Java集合类快速了解

作者: BoYueStudio | 来源:发表于2020-12-22 20:13 被阅读0次

常用的数据结构

数组

数组和链表都是线性表结构,数组在内存中是一串连续的内存空间,比如定义一个 int 类型数组,int[] array = new int[6],计算机会为 array 分配一块连续的空间。

链表

链表是一种最常见的数据结构,其内部数据呈线性排列,属于线性表结构,什么是线性表?表中的数据按顺序依次排列,就像用一条线把数据串联起来一样。

数组和链表有什么区别?

数组会在内存当中开辟一块连续的存储空间,需要指定长度数组当中的每一个元素都有索引,查询的话通过索引可以直接定位到某一个元素,效率很高。但是进行删除的话,数组会进行移动,所以效率很低。

链表不需要连续的存储单元,链表中的上一个元素通过指针指向下一个元素。所以链表结构进行查询的话,头部尾部比较快,中间元素查找速度比较慢。但是删除的话,只需要删除前后指针,重新建立指针就可以了,所以删除的性能很高。

 集合类或集合框架

图|集合类总结图

collection接口是集合类的顶层接口,collections是工具类。collection有两个子接口,一个list接口,一个是set接口。

 list接口

特点:list接口有序可重复。

常用的实现类:

arrayList  基于数组实现的。

linkedList  基于链表实现的,区别参考数组和链表区别。

vector  基于数组实现的,但是是线程安全的(synchronized)。

copyOnwriteArrayList  复制数组副本来实现。

set接口

特点:set接口无序不可重复

常用的实现类:

HashSet  基于hashMap来实现的,实现不可重复是通过 hashCode方法和equals方法进行两次比较,先比较hashCode,再通过equals。

TreeSet  基于二叉树来实现的,可以对元素进行排序(排序规则默认是自然顺序,可以自定义比较器,实现自定义排序)。

Map接口,key value结构的。

map接口

特点:key value结构。

常用实现类:

HashMap  key不可重复,无序,可以为null。实现原理 :基于数组和链表来实现的,当存入一组键值对的时候,先对key进行hash,然后映射到一个初始化长度为16的数组上,当不同的key产生hash碰撞的时候,value会通过链表结构来进行存储。jdk1.8之后对hashMap进行了改进,当链表长度达到临界值8,会通过红黑树来存储value。hashMap有两个参数,一个是初始化数组长度16,负载因子0.75。当满足扩容阈值的时候(当数组的12个元素被存满,并且有hash碰撞了),动态扩容,以2倍的增长方式进行扩容。

HashTable HashTable是线程安全的hashMap(synchronized机制),key不准许为null。TreeMap基于二叉树来实现的,可对key进行自然排序(自定义比较器,写比较规则)。

ConcurrentHashMap是线程安全的,对整个hash桶采用分段策略,拆分成若干个段segment,对每一个段上锁(synchronized),极大的提高了并发修改的效率。

相关文章

  • Java集合类快速了解

    常用的数据结构 数组 数组和链表都是线性表结构,数组在内存中是一串连续的内存空间,比如定义一个 int 类型数组,...

  • 集合知识

    目录 集合图 集合机制 快速失败 java.util包下面的所有的集合类都是快速失败fail-fast迭代器的,而...

  • 一文掌握Kotlin集合

    Kotlin没有重新实现一套集合类,而是在Java的集合类基础上做了一些扩展,所以了解Java集合对掌握Kotli...

  • 那些年我们追过的Java面试之集合类、异常处理

    标签:Java面试、集合类、异常处理 2017/05/09 09:36 三.Java集合类 10.Java集合类框...

  • 简单了解java集合类

    1.Collection接口2.List接口2.1ArrayList2.2LinkedList2.3Vector2...

  • Java集合类总结

    Java集合类 1.简介: java集合类包含在java.util包下集合类存放的是对象的引用,而非对象本身。集合...

  • JavaSE集合类

    JavaSE集合类 概述 Java中集合类概述Java中数组与集合的比较Java中集合框架层次结构 Collect...

  • Java集合类简介及其遍历总结

    Java集合类简介 Java集合类主要由两个接口派生而出: Collection 和 Map 。Java集合大致可...

  • JAVA 大数据学习路线

    Java基础 多线程 (多了解java.util.conconrrent包的类) 集合框架 IO 反射(如何实现根...

  • Java基础之集合类

    Java基础之集合类 集合类简单介绍 Java集合是Java提供的工具包,包含了常用的数据结构:集合、链表、队列、...

网友评论

      本文标题:Java集合类快速了解

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