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();
}



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

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

相关推荐
007php0073 分钟前
百度面试题解析:synchronized、volatile、JMM内存模型、JVM运行时区域及堆和方法区(三)
java·开发语言·jvm·缓存·面试·golang·php
YSRM7 分钟前
Leetcode+Java+图论II
java·leetcode·图论
十铭忘9 分钟前
基于SAM2的眼动数据跟踪2
java·服务器·前端
okjohn20 分钟前
浅谈需求分析与管理
java·架构·系统架构·软件工程·产品经理·需求分析·规格说明书
芒果量化21 分钟前
Optuna - 自动调参利器&python实例
开发语言·python·算法·机器学习
用户03321266636734 分钟前
Java添加、设置和删除PDF图层:
java
foundbug99940 分钟前
基于CSMA-CA协议的V2X通信MATLAB仿真
开发语言·网络·matlab
荣光波比42 分钟前
K8S(十)—— Kubernetes核心组件详解:Pod控制器与配置资源管理
java·容器·kubernetes
m0_651593911 小时前
企业级订单系统架构设计:领域驱动 vs 数据驱动实践指南
java·系统架构·领域驱动ddd
WangMing_X1 小时前
C#上位机软件:2.5 体验CLR实现多语言混合编程
java·开发语言·c#