Java常用API与集合框架详解

一、常用API

1.1 大数计数类

在 Java 中提供了用于大数字运算的类,即 java.math.BigInteger 类和 java.math.BigDecimal 类。这两个类用于高精度计算,其中 BigInteger 类是针对整型大数字的处理类,而 BigDecimal 类是针对大小数的处理类。

1.1.1 BigInteger

BigInteger 支持任意精度的整数,也就是说在运算中 BigInteger 类型可以准确地表示任何大小的整数值。
要使用 BigInteger 类,首先要创建一个 BigInteger 对象。BigInteger 类提供了很多种构造方法,其中最直接的一种是参数以字符串形式代表要处理的数字。这个方法语法格式如下:

BigInteger(String val)
//这里的 val 是数字十进制的字符串
BigInteger big = new BigInteger("1")
//要将数字 1 转换为 BigInteger 对象
方法名称解释
add(BigInteger val)加法运算
subtract(BigInteger val)减法运算
multiply(BigInteger val)乘法运算
divide(BigInteger val)除法运算
remainder(BigInteger val)取余数运算
divideAndRemainder(BigInteger val)做除法运算,返回数组的第一个值为商,第二个值为余数
pow(int exponent)做参数的 exponent 次方运算
negate()取反运算
shiftLeft(int n)将数字左移 n 位,如果 n 为负数,则做右移操作
shiftRight(int n)将数字右移 n 位,如果 n 为负数,则做左移操作
and(BigInteger val)与运算
or(BigInteger val)或运算
compareTo(BigInteger val)数字的比较运算
equals(Object obj)当参数 obj 是 Biglnteger 类型的数字并且数值相等时返回 true, 否则返回 false
min(BigInteger val)返回较小的数值
max(BigInteger val)返回较大的数值

1.1.2 BigDecimal

BigDecimal 类支持任何精度的浮点数,可以用来精确计算货币值。

BigDecimal 常用的构造方法如下:

//实例化时将双精度型转换为 BigDecimal 类型
BigDecimal(double val)
//实例化时将字符串形式转换为 BigDecimal 类型
BigDecimal(String val)

BigDecimal类的常用运算方法

方法名称解释
add(BigDecimal augend)加法运算
subtract(BigDecimal subtrahend)减法运算
multiply(BigDecimal multiplieand)乘法运算
divide(BigDecimal divisor,int scale,int roundingMode)除法运算,3 个参数分别表示除数、商的小数点后的位数和近似值处理模式

1.2 时间类

1.2.1 LocalDate

  • LocalDate只能使用年月日,不包含时间和时区信息。

在进行实列化的时候不是通过new的方法进行实例化,而是通过now()方法来获取当前时间的对象:

LocalDate ld = LocalDate.now();

还可以使用of()方法来进行声名我们想要的事件对象:

LocalDate ld = LocalDate.of(2024,2,22);

而在实际使用的时候我们接收到的日期的参数往往是输入的字符串,而默认的字符串实例化格式只有一种那就是按照“2024-02-22T14:59:59”格式进行传入:

LocalDate ld = LocalDate.parse("2024-02-22");

1.2.2 LocalDateTime

  • LocalDateTime可以使用年月日时分秒,包含时区信息。

实列化与上述一致:

LocalDateTime ldt = LocalDateTime.now();

LocalDateTime ldt = LocalDateTime.of(2024,2,22,14,59,59);

LocalDateTime ldt = LocalDateTime.parse("2024-02-22T14:59:59");

值得注意的是,LocDateTime类传入参数的,在年月日时分秒中年必须是四位、其余必须是两位不然不能正确解析,在年月日和时分秒之间必须用“T”来进行分隔开不然也会造成解析错误。

二、集合框架

  • 集合是Java中用于存储多个对象的数据结构。

2.1 集合体系继承树

Java 集合可分为 Collection 和 Map 两种体系。

2.1.1 Collection接口

单列数据, 定义了存取一组对象的方法的集合。

  • List: 元素有序、可重复的集合
  • Set: 元素无序、不可重复的集合

2.1.2 Map接口

双列数据,保存具有映射关系“key-value对”的集合。

  • Map:使用键值对(kye-value)存储,类似于数学上的函数 y=f(x),“x”代表 key,"y"代表 value,Key 是无序的、不可重复的,value 是无序的、可重复的,每个键最多映射到一个值。

2.2 遍历方式

2.2.1 迭代器遍历

  1. 创建迭代器对象
  2. 利用hashNext()与next()方法循环遍历
//多态的方式创建一个arraylist对象
Collection<String> coll = new ArrayList<>();
//添加元素
coll.add("abc");
//通过iterator方法创建迭代器对象
Iterator<String> it = coll.iterator();//默认获取集合的0索引

while (it.hasNext()){
    String str = it.next();//获取元素 移动指针
    System.out.println(str);
}

hashNext():返回一个bollean类型的值,如果迭代到了集合的末尾,返回false。

next():1.获取当前元素; 2.移动指针

注意

  • 遍历结束后,指针不会复位,如果再调用next()方法,会报错没有该实例。
  • 遍历过程中不能使用集合的方法添加元素,会造成并发异常。
  • 再次遍历就要重新获取迭代器对象,默认获取集合0索引。

2.2.2 增强for遍历

格式:

for(变量数据类型 变量名:集合名){}
Collection<String> coll = new ArrayList<>()
coll.add("abc");
coll.add("bcd");

// s是第三方变量
for (String s : coll) {
    System.out.println(s);
}

注意:

  • 所有的单列集合和数组才能使用增强for遍历。
  • 这里的string s只是一个第三方变量,如果修改了s,不会改变集合里面的值。

三、List集合

List允许有重复元素,并且有序。

List集合下最常见的有两个:ArrayList 和 LinkedList。

  • ArrayList底层是数组,遍历速度快。
  • LinkedList底层是链表,增删速度快。

  • 39
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值