Java集合框架笔记记录 --- 原创@余胜军 但有个人心得

本文详细探讨了Java集合框架的核心概念,包括List、Set、Map等接口及其常见实现类的特性和使用场景。通过实例分析,揭示了ArrayList、LinkedList、HashSet、HashMap等数据结构的工作原理,并分享了个人在实际开发中积累的优化技巧和经验总结。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java集合框架课程安排
1.集合框架API知识 List/Set/Map集合
2.常见数据结构 数组/链表/队列/树
3.集合源码解读 List/Set/Map

1.为什么需要学习Java中集合框架呢?
集合概念:存放多个元素内容
框架:底层封装好 提供简单的api,给开发人员使用
Java框架 Spring SpringMVC等
集合框架 JDK帮助我们封装好的 ArrayList/Map/Set
原生的数组,存放数据在最开始定义死了容量
在以后,如果继续存放数据就有可能导致容量无法装下,从而程序就会报错。
集合特点:提供一种存储空间可变的存储模型,存储的数据容量可以发生改变。【官方】
解读:最开始定义了一个数组,装10个元素;在想要存放第11个元素时,自动实现对我们定义好的数组进行扩容.
常见集合框架底层设计了大量的数据结构,分别是:
1.数组
2.链表
3.树
4.队列

集合框架中单列与多列的区别?

单列----一行就只有一列数据
多列----一行有两列数据 key(第一列) value(第二列)

集合框架的组成部分:
1.Collection(存放单列数据) --- 接口
##List接口:存放数据可以允许重复的
###ArrayList 底层基于数组实现
###LinkedList 底层基于链表数据结构实现
##Set接口:不允许存入重复数据 Set集合对数据做去重。
HashSet 不允许存入重复数据 底层基于Map集合实现

2.Map(存入多列数据 key value)--- 接口
###HashMap 底层 基于数组+链表实现(JDK1.7) (JDK1.8)基于数组+链表+红黑树实现。
###HashTable


ArrayList集合的常见方法
方法名                                             说明
public boolean add(E e)                         将元素插入到指定位置的arrylist中
public E remove(int index)                      删除arraylist里的单个元素
public E set(int index,E element)               替换arraylist中指定索引的元素
public E get(int index)                         通过索引值获取arraylist中的元素
public int size()                               返回arraylist中元素的数量

ArrayList集合
1.ArrayList类是一个可以动态修改的数组,与普通数组的区别就是它没有固定大小的限制。
2.ArrayList继承了AbstractList,并实现了List接口。
3.ArrayList类位于java.util包中,使用前需要引入它,语法格式如下:
import java.util.ArrayList;//引入ArrayList类
ArrayList<E> objectName = new ArrayList<>();//初始化
E:泛型数据类型,用于设置objectName的数据类型,只能为引用数据类型。
ArrayList中的元素实际上是对象,在以上实例中,数组列表元素都是字符串String类型;如果我们要存储其他类型,而<E>只能为引用类型,这时就需要使用到基本类型的包装类
objectName:对象名

Collection集合的遍历:
概述:Iterator:迭代器,集合的专用遍历方式
1.Iterator<E> Iterator() 返回在此collection的元素上进行迭代的迭代器。
2.boolean hashNext() 如果仍有元素可以迭代,则返回true
3.E next()返回迭代的下一个元素。
----------------------------------------------------------------------------------------------------
List集合特有方法
方法名称                                     说明
boolean add(int index,E e)      在此集合中的指定位置插入指定的元素
E remove(int index)             删除指定的索引处的元素,返回被删除的元素
E set(int index,E element)      修改指定索引处的元素,返回被修改元素
E get(int index)                返回指定索引处的元素
总结:
Collection接口只是提供了集合的基本方法,具体的实现List ArrayList需要实现List接口
List集合下都是有序的接口。根据存放的顺序进行遍历;可以允许存放重复数据,Set接口不允许。

List结课:
List集合概述:
1.有序集合,用可以精确的控制列表中每个元素的插入位置。可以通过整数索引访问元素,并搜索列表中的元素。
2.与Set集合不同,List集合通常允许重复的元素。
3.List集合的特点:
    3.1有序:存储和取出的元素顺序一致
    3.2可重复:存储的元素可以重复
-------------------------------------------------------------------------------------------------------------------------
ListIterator
1.列表迭代器:
    ListIterator listIterator():List集合特有的迭代器
    该迭代器继承了Iterator迭代器,所以,就可以直接使用hasNext()和next()方法。
2.特有功能:
    Object previous():获取上一个元素
    boolean hasPrevious():判断有没有上一个元素
3.注意:ListIterator可以逆向遍历List,但是前提是先正向遍历,然后才能够逆向遍历。一般情况下,不使用。
------------------------------------------------------------------------------------------------------------------------
增强for循环的使用
增强for循环(也称for each循环)是JDK1.5以后出来的一个高级for循环,专门用来遍历数组和集合的。它的内部原理其实是个Iterator迭代器,所以
在遍历的过程中,不能对集合中的元素进行增删操作!
增强for循环
    基本语法
for(元素类型 元素名(自己取的变量名称):集合名或者是数组名称){
    访问元素
}
总结:今后集合就可以使用三种不同类型的方式来遍历
1.传统for循环
2.迭代器Iterator后者是List接口专用的ListIterator(正向,逆向)
3.增强for循环【JDK1.5推出,底层基于我们的Iterator迭代器】
------------------------------------------------------------------------------------------------------------------------
泛型的概述
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Y特奈特

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

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

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

打赏作者

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

抵扣说明:

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

余额充值