JavaSE进阶——Day04 正则、Collection集合
JavaSE进阶——Day04 该篇主要讲解Java中的正则、Collection集合
学习目标
API
BigInteger类
BigDecimal类
Arrays类
包装类
String类
正则
正则表达式的体验
正则表达式的语句及案例
Collection集合
集合与数组之间的区别
集合的体系
Collection集合中常用方法
Collection集合遍历的方式
Math工具类
Math类:针对数字运算提供一系列方法
工具类的编写规则:
- 不能被继承,使用final关键字修饰类
- 不能创建对象,使用private关键字修饰构造方法
- 对外提供静态方法(通过类名访问)
BigInteger
问题:long类型在存储数据时有上限吗?
答案:是有上限
问题:在程序中使用long无法存储整数数字时,怎么办?
答案:使用BigInteger
学习API的套路:
- 明确API类归属包
- 明确API类可以解决什么问题
- 使用API
- 构造方法
- 常用方法
1 | import java.math.BitInteger; |
BigDecimal
BigDecimal类:用来存储超出double范围的小数
1 | import java.math.BigDecimal; |
Arrays工具类
Arrays类:针对数组提供了一系列方法
- 数组元素排序(默认升序)
- 数组转换为字符串
包装类
什么是包装类?
1 | Java语言: 万物皆对象 |
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | character |
boolean | Boolen |
包装类解决程序中的什么问题?
1 | 1、实现String类型和7种基本类型(没有char)之间的转换 |
包装类怎么使用?
1 | //使用Integer作为代表 |
包装类在使用中的细节
- 在把String类型数据,转换为基本类型数据时,容易发生:NumberFormatException异常
- 原因:String类型数据,不符合要转换的基本类型数据格式
- 包装类在使用时存在:自动装箱、自动拆箱
- 自动装箱 : Integer.valueOf( 数值 )
- 自动拆箱: Integer对象.intValue()
- 包装类中有常量池(数据值没有超出常量池范围,就直接从常量池中获取对象)
正则表达式
什么是正则表达式?
1 | 由一些特定的字符组成的字符串校验规则,称为:正则表达式 |
正则表达式解决程序中什么问题?
1 | 正则表达式只能针对字符串进行格式校验 |
正则表达式怎么使用?(开发中基本都是CV)
1 | //课程学习正则表达式的语法 |
回顾上午内容
1 | Math类: 针对数值进行提供了一些数学运算功能 |
集合
三种集合:List 、Set 、Map
集合有什么好处?
- 大小可变(随意扩容)
- 集合中可以存储多种不同类型数据
- 底层使用数据结构(存取效率高)
集合:不能存储基本类型数据
1 | ArrayList list = new ArrayList(); |
Collection集合: 是一个接口
- 子接口: List 、 Set
- 子类: ArrayList
ArrayList集合对象可以使用传统的for循环,进行遍历
- ArrayList集合有索引
Collection集合: 没有索引。 遍历集合使用专用方式:迭代器
迭代器
迭代器:Iterator
- 作用:用于集合的遍历
Iterator迭代器中常用方法:
1 | boolean hasNext(); //检查迭代器对象中是否有下一个元素 |
Iterator迭代器在使用中的细节:
- 在迭代器完成集合的遍历后,不要在使用:next()方法
- 在迭代器遍历集合的过程中,不能使用集合对象来增删元素
- 删除元素: 使用迭代器对象中的remove方法实现
- 增加元素: 不用考虑(解决方案:使用其他的集合对象。例:List集合)
增强for循环
什么是增强for?
- 就是基于普通的for循环,进行强化(底层使用:迭代器)
增强for的应用:
- 针对数组或集合,进行遍历
增强for的语法:
1 | for( 元素类型 变量 : 容器 ) |