刨析源码,深层讲解 Java-集合框架

Java 集合框架3. 子接口之一:List接口 3.3 List实现类之一: 3.4 List实现类之二: 3.5 List实现类之三: 3.6 、、三者的异同? 4. 子接口之二:Set接口 4.3 Set实现类之二: 4.4 Set实现类之三:四、Map接口 3. Map实现类之一: 4. Map实现类之二: 5. Map实现类之三: 6. Map实现类之四: 7. Map实现类之四:五、 工具类
前言
本博主将用CSDN记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主!
也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成长的道路上互相学习,欢迎关注!
一、引入
(1) 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储 。
(2)另一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态地把多个对象的引用放入容器中 。
? 数组在内存存储方面的特点:
? 数组在存储数据方面的弊端:
二、概述
(1)Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 。
(2)体系分布:
Java 集合可分为和 Map两种体系 。
? 接口:单列数据,定义了存取一组对象的方法的集合 。
(实线表示“继承”,虚线表示“实现”)
● List:元素有序、可重复的集合 。–>“动态”数组
● Set:元素无序、不可重复的集合
? Map接口:双列数据,保存具有映射关系“key-value对”的集合
(实线表示“继承”,虚线表示“实现”)





三、接口 1. 概述
(1)接口是 List、Set 和 Queue接口的父接口,该接口里定义的方法既可用于操作Set集合,也可用于操作 List 和 Queue 集合 。
(2)JDK不提供此接口的任何直接实现,而是提供更具体的子接口(如:Set和List)实现 。
(3)在 Java5 之前,Java 集合会丢失容器中所有对象的数据类型,把所有对象都当成类型处理;从JDK 5.0增加了泛型以后,Java 集合可以记住容器中对象的数据类型 。
2. 方法 2.1 添加 方法一方法二
add( obj)
( coll)
2.2 获取有效元素的个数 方法
int size()
2.3 清空集合 方法
void clear()
2.4 判断是否是空集合 方法
()
2.5 判断是否包含某个元素 方法一方法二
( obj)
( c)
通过调用元素的方法来(挨个)比较判断是否是同一个对象
2.6 删除 方法一方法二
( obj)
( coll)
通过调用元素的方法来判断是否是要删除的某个元素,只会删除找到的第一个元素/删除当前集合里的指定某个子集合,即取当前集合的差集
2.7 取两个集合的交集 方法
( c)
把交集的结果存在当前集合中
2.8 判断集合是否相等 方法
( obj)
2.9 转成对象数组 方法
[] ()
2.10 获取集合对象的哈希值 方法
()
2.11 遍历 方法
()
返回迭代器对象,用于集合遍历
2.12 代码演示
@Testpublic void test1(){Collection coll = new ArrayList();//add(Object e):将元素e添加到集合coll中coll.add("AA");coll.add("BB");coll.add(123);//自动装箱coll.add(new Date());//size():获取添加的元素的个数System.out.println(coll.size());//4//addAll(Collection coll1):将coll1集合中的元素添加到当前的集合中Collection coll1 = new ArrayList();coll1.add(456);coll1.add("CC");coll.addAll(coll1);System.out.println(coll.size());//6System.out.println(coll);//[AA, BB, 123, Tue Apr 19 22:51:41 CST 2022, 456, CC]//clear():清空集合元素coll.clear();//isEmpty():判断当前集合是否为空System.out.println(coll.isEmpty());//true}