java--集合、数据结构、泛型

集合

在这里插入图片描述在这里插入图片描述1、数组和集合的元素存储的个数问题。
数组定义后类型确定,长度固定
集合类型可以不固定,大小是可变的。
2、数组和集合存储元素的类型问题。
数组可以存储基本类型和引用类型的数据。
集合只能存储引用数据类型的数据。
3、数组和集合适合的场景
数组适合做数据个数和类型确定的场景。
集合适合做数据个数不确定,且要做增删元素的场景。

集合的体系特点

在这里插入图片描述在这里插入图片描述在这里插入图片描述
1、集合的代表是?
Collection接口。
2、Collection集合分了哪2大常用的集合体系?
List系列集合:添加的元素是有序、可重复、有索引。
Set系列集合:添加的元素是无序、不重复、无索引。
3、如何约定集合存储数据的类型,需要注意什么?
集合支持泛型。
集合和泛型不支持基本类型,只支持引用数据类型。

Collection的常用方法

在这里插入图片描述

集合的遍历方式

方式一:迭代器

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
1、迭代器的默认位置在哪里。
Iterator iterator():得到迭代器对象,默认指向当前集合的索引0

2、迭代器如果取元素越界会出现什么问题。
会出现NoSuchElementException异常。

方式二:foreach/增强for循环

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

方式三:lambda表达式

在这里插入图片描述

集合存储自定义类型的对象

在这里插入图片描述

1、集合中存储的是元素的什么信息?
集合中存储的是元素对象的地址。

常见数据结构

数据结构概述、栈、队列

数据结构是计算机底层存储、组织数据的方式。是指数据相互之间是以什么方式排列在一起的。
通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率

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

数组

在这里插入图片描述

链表

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

二叉树、 二叉查找树

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

在这里插入图片描述

平衡二叉树

在这里插入图片描述

红黑树

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

List系列集合

在这里插入图片描述

List集合特点、特有API

List系列集合特点
ArrayList、LinekdList :有序,可重复,有索引。
有序:存储和取出的元素顺序一致
有索引:可以通过索引操作元素
可重复:存储的元素可以重复
在这里插入图片描述
在这里插入图片描述

List集合的遍历方式小结

List集合的遍历方式有几种?
迭代器
增强for循环
Lambda表达式
for循环(因为List集合存在索引)
在这里插入图片描述

ArrayList集合的底层原理

在这里插入图片描述

LinkedList集合的底层原理

在这里插入图片描述

在这里插入图片描述

队列

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

补充知识:集合的并发修改异常问题

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

foreach遍历删除bug
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

补充知识:泛型深入

泛型的概述和优势

泛型:是JDK5中引入的特性,可以在编译阶段约束操作的数据类型,并进行检查。
泛型的格式:<数据类型>; 注意:泛型只能支持引用数据类型。
集合体系的全部接口和实现类都是支持泛型的使用的。
泛型的好处:
统一数据类型。
把运行时期的问题提前到了编译期间,避免了强制类型转换可能出现的异常,因为编译阶段类型就能确定下来。
在这里插入图片描述

自定义泛型类

定义类时同时定义了泛型的类就是泛型类。
泛型类的格式:修饰符 class 类名<泛型变量>{ }
在这里插入图片描述在这里插入图片描述

自定义泛型方法

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

自定义泛型接口

泛型接口可以约束实现类,实现类可以在实现接口的时候传入自己操作的数据类型这样重写的方法都将是针对于该类型的操作。

在这里插入图片描述

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

泛型通配符、上下限

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值