集合的概述

java集合框架(Java Collections Framework)为开发者提供了一系列通用容器,所谓容器就是可以容纳其他对象的对象,在jdk1.2开始,就提供了通用容器。

在这里插入图片描述

1.Java集合框架的概述

容器是用于容纳其他对象的对象,因此基本数据类型无法直接使用容器,必须要转换成包装类后才可以使用,这里就涉及到了包装类的概念。

所有的集合类都存在于:java.util包下

Java集合框架的优点:

  • 降低编程难度

  • 提高程序性能

  • 提高API之间的互操作性

  • 降低学习难度

  • 提高代码的重用性

1.1 集合和数组的异同

  • 相同点:

    • 都是对多个数据进行存储操作的容器

    • 都是内存层面的存储结构,不涉及到持久化存储层面

  • 不同点

    • 数组:

      • 一旦初始化以后,长度就确定了–不可修改

      • 声明后,元素的类型必须一致,只能操作指定类型的数据–只能存储一种类型的数据(可以是基本数据类型,也可以是对象)

      • 提供的方法有限,不利于增删改查等操作,也没有提供相应的属性

      • 数组的存储特点:有序,可重复

    • 集合:

      • 只能保存对象

      • 支持保存具有映射关系的数据

      • 可扩容

      • 增删改查方法多,便于对各种数据的操作

2.集合继承树

集合主要分为两大接口:

  • Collection接口:单列集合,用来存储一个一个的对象

    • List接口:有序–添加顺序,可重复

      • ArrayList:线程不安全、遍历快,增删慢、底层使用数组

      • Vector:线程安全、遍历快、增删慢,底层使用数组

      • LinkedList:线程不安全、遍历慢,增删快,底层使用双向循环链表

    • Set接口:无序–添加顺序,不可重复

      • HashSet:底层使用HashMap实现,存取速度快

      • TreeSet:底层二叉树实现,内部是TreeMap和SortedMap

      • LinkedHashSet:hash表存储、双向链表记录插入记录、底层是LinkHashMap

      • EnumSet:

    • Queue(队列)

      • PriorityQueue:基于堆结构实现,可以实现优先队列,非FIFO,每次取最小元素

      • ArrayDeque:底层基于循环数组实现双端队列

  • Map集合(字典):双列集合,用来存储一对一对的数据(采用键对值的形式key-value),相当于“函数”,key不可重复,value可重复

    • HashMap:线程不安全、底层数组+链表+红黑树、key值和value值可为null,

    • Hashtable:线程安全、底层hash表、key和value都不允许为null

    • TreeMap:线程不安全、底层二叉树、key值不可为null,value可以为null

    • LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或则最近最少使用顺序(LRU)

在这里插入图片描述

  • 12
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Carl·杰尼龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值