java基础自用笔记:异常、泛型、集合框架(List、Set、Map)、Stream流

异常

异常体系

编译时异常代表程序觉得你可能会出错。

运行时异常代表已经出错

异常基本处理

异常的作用

可以在可能出现的异常的地方用返回异常来代替return,这样提醒程序出现异常简洁清晰

自定义异常

最好用运行时异常,不会像编译时异常那样烦人,一碰就报红

自定义编译时异常

手动抛出异常

自定义运行时异常

自动帮你抛出异常

异常的处理方案

泛型

认识泛型

泛型类

泛型接口

泛型方法、通配符、上下限

泛型支持的类型

由于list.add(12)是基本数据类型,到了ArrayList的算法底层全都是用Object接收,Object接收的只能是对象,所以不能用ArrayList<int>,只能用int的包装类Integer,ArrayList<Integer>

在底层代码中,Integer的-128------127的数据已经包装好了,地址都是一样的,当超过这个范围就有不同的地址。Integer和int类型的数据可以自动互相转换。list.add(123)是int自动装箱Integer,list.get(1)是自动拆箱

Collection集合

集合体系结构

单列集合collection

collection的常用功能
collection的遍历方式
遍历方式的区别

两种解决方法

迭代器遍历适合没有索引的时候(for-each和Lambda遍历只适合遍历,不适合遍历且删除)

List集合

List集合的特有方法

ArrayList的底层原理

只有在第一次添加数据的时候才把数组扩容为10,后来的每次扩容都是原来长度的1.5倍

LinkedList的底层原理

Set集合

HashSet集合的底层原理

HashSet集合的元素去重操作

HashSet去重时,首先两个对象的hashcode值要一样,分到同一个位置后再根据两个对象的内容是否一样判断两个对象是否要去重。这时候可以在对象的类里面重写hashcode和equals方法,如果不重写这两个方法,两个对象的hashcode会不一样,也就没有判断内容一不一样的步骤了。

LinkedHashSet底层原理

每个元素记录前一个元素和后一个元素,首尾指针指向整个链表的第一个元素和最后一个元素

TreeSet集合

Map集合

Map集合体系

Map集合的常用方法

Map集合的遍历方式

键找值

键值对

Lambda表达式

HashMap集合的底层原理

LinkedHashMap的底层原理

TreeMap的使用

Stream流

认识Stream流

获取Stream流

Stream流的常用方法

Stream流的终结方法

收集Stream流

方法中可变参数

Collections工具类

相关推荐
一杯奶茶¥2 小时前
c语言程序设计大学期末考试考研知识点重点笔记题库复习资料C语言重点考点题库资料合集
c语言·笔记·考研·c语言程序设计·c语言笔记
沫离痕3 小时前
Cassandra 4.0.11 Docker 安装与配置手册
java·spring boot
plainGeekDev3 小时前
libs 目录 → Gradle 依赖管理
android·java·kotlin
CodeStride3 小时前
就像长跑配速一样,我是如何平衡代码性能与可读性的
java
弹简特3 小时前
【Java项目-企悦抽】07-用户与认证模块-实现用户注册01
java·开发语言
L歪歪君3 小时前
Apache Doris全链路性能优化实战指南:从架构设计到生产落地
java·开发语言·算法
山东点狮信息科技有限公司4 小时前
SpringBoot+VUE3,一套系统完成OA+HRM+CRM+MES+合同+项目管理 —— 深度解析点狮全业务管理平台
java·spring boot·后端
FakeOccupational4 小时前
【电路笔记 信号】传输线方程:从RLGC推导传输线特性阻抗
笔记
snow@li5 小时前
Java:Java 服务器(Web 容器 / Servlet 容器)完整工作清单
java·服务器·前端
青山木5 小时前
Hot 100 --- 二叉树与递归
java·数据结构·算法·leetcode·深度优先