java基础~数组工具类与常见异常

目录

Arrays工具类的使用

数组的常见异常


Arrays工具类的使用

java.util.Arrays 类即为操作数组的工具类 包含 了用来操作数组 了用来操作数组 了用来操作数组 比如排序和搜索 )的各种方法 。

 

package com.atguigu.java;
  ​
  import java.util.Arrays;
  ​
  /*
   * java.util.Arrays:操作数组的工具类,里面定义了很多操作数组的方法
   * 
   * 
   */
  public class ArraysTest {
      public static void main(String[] args) {
          
          //1.boolean equals(int[] a,int[] b):判断两个数组是否相等。
          int[] arr1 = new int[]{1,2,3,4};
          int[] arr2 = new int[]{1,3,2,4};
          boolean isEquals = Arrays.equals(arr1, arr2);
          //Arrays.equals(arr1, arr2)会返回一个布尔型的值,用变量isEquals接受它。
          System.out.println(isEquals);
          
          //2.String toString(int[] a):输出数组信息。
          System.out.println(Arrays.toString(arr1));
          
              
          //3.void fill(int[] a,int val):将指定值填充到数组之中。
          Arrays.fill(arr1,10);
          //[10, 10, 10, 10]
          //把数组原来的值全部替换为参数。
          System.out.println(Arrays.toString(arr1));
          
  ​
          //4.void sort(int[] a):对数组进行排序。底层用的是快排。
          Arrays.sort(arr2);
          System.out.println(Arrays.toString(arr2));
          
          //5.int binarySearch(int[] a,int key)
          //二分查找
          int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
          int index = Arrays.binarySearch(arr3, 210);
          if(index >= 0){
              System.out.println(index);
          }else{
              System.out.println("未找到");
          }               
      }
  }

数组的常见异常

数组脚标越界异常 (ArrayIndexOutOfBoundsException )

   

  • System.out.println (arr [2]);

  • int[] arr = new int int[2];

  • System.out.println (arr[-1]);

  • 访问到了数组中的不存在脚标时发生。

空指针异常 (NullPointerException)

  • int int[] arr = null null ;

  • System.out.println (arr [0]);

  • arr 引用没有指向实体,却在操作中的元素时。

数组角标越界的异常 (ArrayIndexOutOfBoundsException )
public class ArrayExceptionTest {
  public static void main(String[] args) {

          //1. 数组角标越界的异常:ArrayIndexOutOfBoundsExcetion
        int[] arr = new int[]{1,2,3,4,5};
		for(int i = 0;i <= arr.length;i++){
 			System.out.println(arr[i]);
		}
		//打印不出来arr[5]
		//System.out.println(arr[-2]);越界

		//System.out.println("hello");出现异常,程序终止,打印hello没有执行
	}
}
  • 空指针异常(NullPointerException)

public class ArrayExceptionTest {
  public static void main(String[] args) {
//2.2. 空指针异常:NullPointerException
		//情况一:
//		int[] arr1 = new int[]{1,2,3};
//		arr1 = null;//执行本语句之前栈空间里的变量arr1存放的是堆空间里arr1数组的首地址值
//		System.out.println(arr1[0]);//空指针异常
		
		//情况二:
//		int[][] arr2 = new int[4][];
//		System.out.println(arr2[0][0]);//返回null 参照二维数组的初始化
		
		//情况三:
		String[] arr3 = new String[]{"AA","BB","CC"};
		arr3[0] = null;
		System.out.println(arr3[0].toString());
		//空指针异常
	}
} 
  • 二维数组元素的默认初始化值

  • 针对于初始化方式一:比如:int[]-[] arr = new int[4]-[3];

    • 外层元素的初始化值为:地址值

    • 内层元素的初始化值为:与一维数组初始化情况相同

  • 针对于初始化方式二:比如:int arr = new int[4]-[];

    • 外层元素的初始化值为:null

    • 内层元素的初始化值为:不能调用,否则报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值