分分钟带你解决数据结构问题-----集合框架及其背后的数据结构

声明:博主gitee博主的学习笔记分享

文章前言:

本博客讨论的内容是集合框架,在谈集合框架之前,我们先明确一个点,就是数据结构是什么 ?

数据结构:顾名思义是组织和描述数据的形式,其中包含:顺序表,链表,栈和队列,图,树……
那么集合框架就是 Java 写好的一些数据结构,像是顺序表,链表,栈和队列……这些数据结构不需要我们去手动的进行实现,我们要做的就是去了解一下每个集合框架背后的数据结构

那么为什么有称之为框架呢?

因为他们其中存在层次,每一个集合都是有一定关系一定关联的,是一个大的框架

Java 官方教程对集合框架的解释:集合框架

下面正式开启集合框架的讲解:


文章目录

一、集合框架概述
二、Collection接口的使用
三、Map接口的使用


一、集合框架概述

①.Java 集合框架被称为:

Java Collection Framework

又被称为:

容器 container

②.是被定义在 java.util 包下的一组接口 interfaces 和其实现类 classes

所以每次涉及到集合框架都要导入 java.util 这个包

③.其主要表现为将多个元素 element 置于一个单元中

用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD

④.重点看这样一张图,这里并没有列举出所有的接口和类,只分拣出重要的,我们来一步一步进行分析

在这里插入图片描述](https://img-blog.csdnimg.cn/8c131b25e5034fe89eaad4c7cc1111ed.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm44Gu5r6c,size_20,color_FFFFFF,t_70,g_se,x_16)![在这里插入图片描述](https://img-blog.csdnimg.cn/0ac21e15650f41a2a6f4308addef4b7a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5qKm44Gu5r6c,size_20,color_FFFFFF,t_70,g_se,x_16)![在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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


二、Collection接口的使用

声明:调用 Collection接口中的方法实现很简单,只挑几个做例子

在这里插入图片描述
注意:

由于 Collection 为接口,所以其不能实例化对象,所以这里引用一个具体的实现类,我这里引用的是 ArrayList,引用其他的类都是可以的


①、功能一:将元素添加到集合中

在这里插入图片描述
为了避免元素类型的混乱,我们引入泛型的知识
在这里插入图片描述

②、功能二:打印添加到集合后的内容

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

③、功能三:清空集合元素

在这里插入图片描述

④、功能四:判断集合是否为空

在这里插入图片描述

⑤、将集合转变为数组

这里的返回值是 Object[] 类型

注意点:

由于对于 JVM 对数组的特殊处理,如果在返回值是 Object[] 时使用强制类型转化,会导致程序在运行时报错,这里需要对 JVM 深入理解,这里暂时认为强制类型转化无法把所有 Object[] 类型的数组元素都转换为其他类型的数组元素,导致程序在运行时报错

正确代码:

Object[] oj = collection.toArray();
System.out.println(Arrays.toString(oj));

错误对 object[] 数组强转的代码:

Integer[] oj = (Integer[]) collection.toArray();
System.out.println(Arrays.toString(oj));

程序在运行时报错:

在这里插入图片描述

⑥. 计算集合中元素的个数

在这里插入图片描述

⑦、移除指定元素

在这里插入图片描述


三、Map接口的使用

①、将指定的 k-v 放入 Map,并按照 K 值去查找 V

在这里插入图片描述
这里是引用
当查找的 K 不存在返回 null在这里插入图片描述
使用另外一种 get 方法在查找失败时返回自定义的查找失败内容
在这里插入图片描述
在这里插入图片描述

②、查找是否包含 Key 或者 Value

这里是引用

③、entrySet 用法

这里是引用


刚刚一直使用的 Hashmap 那么 Treemap 又是怎样的呢 ?

记住 Treemap 是有序的即可,这是它和 Hashmap 的区别

我们看他们的底层:

Treemap:
在这里插入图片描述
Hashmap 不存在比较器
在这里插入图片描述
简略表格:
在这里插入图片描述


本文章结束!!!

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦の澜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值