文章前言:
本博客讨论的内容是集合框架,在谈集合框架之前,我们先明确一个点,就是数据结构是什么 ?
数据结构:顾名思义是组织和描述数据的形式,其中包含:顺序表,链表,栈和队列,图,树……
那么集合框架就是 Java 写好的一些数据结构,像是顺序表,链表,栈和队列……这些数据结构不需要我们去手动的进行实现,我们要做的就是去了解一下每个集合框架背后的数据结构
那么为什么有称之为框架呢?
因为他们其中存在层次,每一个集合都是有一定关系一定关联的,是一个大的框架
Java 官方教程对集合框架的解释:集合框架
下面正式开启集合框架的讲解:
文章目录
一、集合框架概述
二、Collection接口的使用
三、Map接口的使用
一、集合框架概述
①.Java 集合框架被称为:
Java Collection Framework
又被称为:
容器 container
②.是被定义在 java.util 包下的一组接口 interfaces 和其实现类 classes
所以每次涉及到集合框架都要导入 java.util 这个包
③.其主要表现为将多个元素 element 置于一个单元中
用于对这些元素进行快速、便捷的存储 store 、检索retrieve 、管理 manipulate ,即平时我们俗称的增删查改 CRUD
④.重点看这样一张图,这里并没有列举出所有的接口和类,只分拣出重要的,我们来一步一步进行分析
二、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 不存在比较器
简略表格: