JAVA学习经历(第五周)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


一、常用类补充

1.Arrays类

1) 介绍:Arrays里面包含了一系列用于管理和操作数组的静态方法。
2) 方法:

  1. toString:返回数组的字符串形式。
  2. sort排序。
  3. binarySearch通过二分搜索法查找。(要求该数组必须有序的)
  4. copyOf数组元素的复制。
  5. fill数组元素填充。
  6. equals比较两个数组元素内容是否完全一致。
    在这里插入图片描述
    在这里插入图片描述
    输出
    在这里插入图片描述

2.BigInteger和BigDecimals 类

(1) 介绍:BigInteger适合保存比较大的整数,BigDecimal适合保存精度更高的小数。
(2) 方法

  1. add加
  2. subtract减
  3. multiply乘
  4. divide除
    代码:
    在这里插入图片描述
    在这里插入图片描述
    BigDecimals用法同理。

二、异常

  1. 基本概念
    Java中,将程序执行中的不正常状态称为异常,分为编译时异常和运行时异常。
    1) 编译时异常是编译器必须要求处理的异常,否则无法通过编译。
    2) 运行时异常,编译器检查不出来,是程序员避免出现的异常,如果全部处理,可能会降低程序的运行效率,所以可以不做处理。
  2. 常见的运行时异常
  1. NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
  2. ArithmeticException:当出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类异常。
  3. ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出的异常。如果索引为负或大于数组的大小, 抛出该异常。
  4. ClassCastException:当试图将对象强制转换为不是实例的子类时,抛出该异常。
  5. NumberFormatException:当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
    3.异常处理
    (1) try-catch处理方式
    try{
    可能有异常的代码。
    }catch(Exception e){
    如果捕获到异常
  1. 系统将异常封装成Exception的对象e,传递给catch。
  2. 得到异常后,交给程序员处理。
    如果没有出现异常,则catch语句不执行。
    }finally{
    不管try代码块中是否有异常发生,都要执行finally。
    }
    案例:
    在这里插入图片描述
    在这里插入图片描述

(2) throws
介绍:显示的声明抛出异常,在出现异常的方法中不对这些异常进行处理,而是由该方法的调用者负责处理。在方法声明中用throws语句可以声明抛出的异常列表,可以是该方法产生的异常类型,也可以是它的父类。
例如:
数据类型 方法名(形参列表) throws 异常类1 ……, 异常类n {
方法体;
}
(3) throw:手动生成异常对象的关键字,在方法体中声明,后面跟着异常对象。

三、集合

(1) 介绍:可以动态保存任意多个对象,使用方便,提供了一系列操作对象的方便方法。
(2) 结构
在这里插入图片描述在这里插入图片描述

1.Collect接口

1) collection的实现子类可以存放多个元素,每个元素可以是Object。
2) Collection的实现子类,有些是List(有序的),有些是Set(无序的)。
3) Collection接口没有直接的实现子类,通过子接口Set和List实现的。

(1)List接口

介绍:是Collection接口的子接口。
1) List集合类中的元素有序且可以重复。
2) List集合中的每个元素都有其对应的顺序索引。
3) List容器中的元素都对应一个整数序号来标记起在容器中的位置,可以根据序号来存取容器中的元素。

  1. 实现子类:Arraylist,Vector,LinkedList
    1) Arraylist:底层是一个Object类型的可变数组,线程不安全,效率高。
    2) Vector:底层也是Object类型的可变数组,线程安全,效率不高。
    3) LinkedList:底层维护了一个双向链表,线程不安全,增删的效率较低,改查的效率较高。

(2)遍历方式

  1. 迭代器
    (1)介绍
    1) Iterator对象成为迭代器,用于遍历集合中的元素。
    2) Collection接口的集合类中都有一个iterator()方法,可以返回一个迭代器。
    (2)执行原理:
    1) next() 将下移以后集合位置上的元素返回。
    2) hasnext():判断是否还有下一个元素。(在iterator.next()前必须要调用iterator.hasnext()进行检查)
    在这里插入图片描述
    在这里插入图片描述
  2. for循环增强
    1) 介绍:增强for循环,可以代替iterator迭代器,只能用于遍历集合或数组。
    2) 基本语法
    For(元素类型 元素名:集合或数组名)
    {
    访问元素;
    }
    例如:
    在这里插入图片描述
    输出
    在这里插入图片描述

(3)List接口的常用方法

  1. add(int i, Object o):在i位置插入o元素。
    2.addAll(int i, Collection o):从 index 位置开始将 o 中的所有元素。
  2. get(int i):获取指定i位置的元素。
    4.indexOf(Object o):返回 o在集合中首次出现的位置。
    5.lastIndexOf(Object o):返回o在当前集合中最后一次出现的位置。
  3. remove(int i):移除指定i位置的元素。
  4. set(int i, Objecto):替换指定 i位置的元素为 o。
  5. subList(int i, intj):返回从i到j位置的子集合。(i=<a<j)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

(4)Set接口

1) 无序,添加和取出的顺序不一样。
2) 不允许有重复元素,最多只能有1个null。

2.Map接口

(1)特点:以下特点事JDK8的Map接口特点
1) Map与Collection并列,用于保存具有映射关系的数据:Key-Value。
2) Key不允许重复,只能有一个null。
3) Value可以重复。
4) 通过指定的Key总能找到对应的Value。
(2)实现子类:HashMap、Hashtable、Properties
HashMap:Key不能重复,Value可以重复,线程不安全,效率高。
Hashtable:Key和Value都不能是null,使用方法和HashMap类似,线程安全,效率较低。
Properties:使用特点和Hashtable类似,用于从文件中加载数据到类对象上。
(3)Map接口常用方法

  1. Put:添加或替换。
  2. remove:根据键删除映射关系。
  3. get:根据键获取值。
  4. size:获取元素个数。
  5. isEmpty:判断个数是否为0。
  6. clear:清除 k-v。
  7. containsKey:查找键是否存在。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    (3) 遍历方式
    先取出所有的 Key ,通过 Key 取出对应的Value。
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值