Java中day17 集合一

集合

在编程时,可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的。如果需要保存数量变化的数据,数组就有点无能为力了。而且数组无法保存具有映射关系的数据,例如:

keyvalue
课程分数
java95
python90

为了保存数量不确定的数据,以及保存具有映射关系的数据(也被称为关联数组),java提供集合类.集合类主要负责保存其他数据因此集合类也被称之为容器类。

java所有的集合类都位于java.util包下,提供了一个表示和操作对象集合的统一构架,包含大量集合接口,以及这些接口的实现类和操作它们的算法。

集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际上保存的是对象的引用变量),而集合里只能保存对象(实际上只是保存对象的引用变量,但通常习惯上认为集合里保存的是对象)。

Java集合类型分为单列集合Collection和双列结合Map,Collection和Map是集合的根接口,这两个接口又包含了一些子接口和实现类
在这里插入图片描述

数据结构

在这里插入图片描述

  1. 数组

    可以在内存中连续存储多个元素的结构,在内存中的分配也是连续,数组中的元素通过下标进行访问,数组下标从零开始
    优点:

    1. 按照索引查询元素速度快
    2. 按照索引遍历数组方便

    缺点:

    1. 数组的长度固定后无法扩容
    2. 数组只能存储单一数据类型
  2. 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。

    特点:先进后出或者说后进先出

    从栈顶放入元素叫做入栈,取出元素叫做出栈

  3. 队列

    队列与栈样也是一中线性表,不同是,队列可以在一端添加元素在另一端取出元素;

    也就是先进先出。

    队列从过一端放入元素称为入队,另一端取出元素称为出队

  4. 链表

    链表是物理存储非连续、非顺序存储结构,数据元素的逻辑顺序,是通过指针地址实现的。

    每个元素有两个结点,一个存储元素的数据域(内存空间),另一个指向下一个结点地址的指针域。

在这里插入图片描述
在这里插入图片描述

从上图可以可出链表形成不同结构如单向链表和双向链表。

  1. 散列表

List

特点:有序可重复

  • 有序指的是下标
  • 可重复指的是的可以存储相同元素,将相同元素存储在不同下标位置上实现
  • 数组:只能存储单一数据类型
  • 优点:线性存储 查询速度快
  • 缺点:数组一旦声明长度不可修改
  • List:有序可重复
  • 泛型:限定数据类型
  • <>钻石操作符
  • ArrayList 新增、删除数据慢 查询快
  • LinkedKList 新增、删除数快 查询慢
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值