Java 常用的Arrays函数

文章目录

Arrays

sort

java 复制代码
int[] array = new int[]{1,20,3};
Arrays.sort(array);// 1 3 20

toString

  1. 帮助数组转为字符串
java 复制代码
int[] array = new int[]{1,2,3};
System.out.println(Arrays.toString(array));
// [1,2,3]

binarySearch

  1. 二分查找
java 复制代码
int[] array = new int[]{1,2,3};
System.out.println(Arrays.binarySearch(array,2));
// 返回1下标
// 第一个参数,有序的数组array,要查找的key

equals

  1. 比较两个数组是否相同,长度,数据内容,相同数组,数组指针是否为空
  2. 返回值是boolean
java 复制代码
int[] array = new int[]{1,2,3};
int[] array1 = new int[]{1,3,2};
System.out.println(Arrays.equals(array,array1));
// false

fill

  1. fill对数组进行填充
java 复制代码
int[] array = new int[10];
Arrays.fill(array,0,3,9);// [0,3)区间填充
Arrays.fill(array,9);// 都填充为9
System.out.println(Arrays.toString(array));

数组拷贝

copyOf

  1. copyOf第一个参数是数组,第二个参数是数组的长度,返回值是一个数组
java 复制代码
int[] array1 = new int[]{1,2,3};
int[] copy = Arrays.copyOf(array1,array1.length);
// 1 2 3 
// 可以当成扩容使用,剩余空间补零
int[] copy = Arrays.copyOf(array1,array1.length*2);
// 1 2 3 0 0 0

copyOfRange

  1. 进行数组范围的拷贝
java 复制代码
int[] array1 = new int[]{1,2,3,4,5,6};
int[] copy = Arrays.copyOfRange(array1,0,3);
// 1 2 3

arraycopy

  1. 直接拷贝到copy数组中
java 复制代码
int[] array1 = new int[]{1,2,3,4,5,6};
int[] copy = new int[array1.length];
System.out.println(array1,0,copy,0,array1.length);
System.out.println(Arrays.toString(copy));
// 1 2 3 4 5 6 

取传过去的数组长度(100)和原数组长度(10)的较小值,那就是10

二维数组

定义

java 复制代码
int[][] array = new int[][]{{1,2,3},{4,5,6}};
int[][] array1 = {{1,2,3},{4,5,6}};
int[][] array2 = new int[2][3];

二维数组的每个元素都是一个一维数组

遍历

java 复制代码
for(int i = 0;i < array.length;i++){
	for(int j = 0;j < array[i].length;j++){
	       System.out.print(array[i][j] + " ");
	   }
	   System.out.println();
	}
System.out.println();

for(int[] arr : array1){
   for(int x : arr){
       System.out.print(x + " ");
   }
   System.out.println();
}

deepToString

  1. 把二维数组打印成字符串
java 复制代码
int[][] array1 = {{1,2,3},{4,5,6}};
System.out.println(Arrays.deepToString(array1));
// [[1, 2, 3], [4, 5, 6]]

空指针异常

  1. 不规则的二维数组
java 复制代码
int[][] array3 = new int[2][];

// 解决方法
array3[0] = new int[]{1,2};
array3[1] = new int[]{1,2,3};

System.out.println(array3[0]);
System.out.println(array3[1]);

for(int i = 0;i < array3.length;i++){
    for(int j = 0;j < array3[i].length;j++){
        System.out.print(array3[i][j] + " ");
    }
    System.out.println();
}



二维数组是特殊的一维数组

内存的存储机制是线性的,二维数组的每个元素又都是一个一维数组

相关推荐
雪碧透心凉_17 分钟前
while 循环与循环嵌套
开发语言·python
TDengine (老段)22 分钟前
TDengine 免费版说明
java·大数据·数据库·物联网·时序数据库·tdengine
乐观勇敢坚强的老彭24 分钟前
信奥C++一维数组笔记
开发语言·c++·笔记
码上有光26 分钟前
异常和智能指针
java·大数据·c++·servlet·异常·智能指针
这就是佬们吗32 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
asdzx6744 分钟前
Python PDF 拆分实战指南:单页拆分与按需页码范围拆分
开发语言·python·pdf
孬甭_1 小时前
C++ vector
开发语言·c++
学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
AOwhisky1 小时前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算