当前位置: 首页 > news >正文

Java 常用的Arrays函数

文章目录

  • Arrays
    • sort
    • toString
    • binarySearch
    • equals
    • fill
  • 数组拷贝
    • copyOf
    • copyOfRange
    • arraycopy
  • 二维数组
    • 定义
    • 遍历
    • deepToString
    • 空指针异常

Arrays

sort

int[] array = new int[]{1,20,3};
Arrays.sort(array);// 1 3 20

toString

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

binarySearch

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

equals

  1. 比较两个数组是否相同,长度,数据内容,相同数组,数组指针是否为空
  2. 返回值是boolean
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对数组进行填充
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第一个参数是数组,第二个参数是数组的长度,返回值是一个数组
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. 进行数组范围的拷贝
int[] array1 = new int[]{1,2,3,4,5,6};
int[] copy = Arrays.copyOfRange(array1,0,3);
// 1 2 3

arraycopy

  1. 直接拷贝到copy数组中
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
在这里插入图片描述

二维数组

定义

int[][] array = new int[][]{{1,2,3},{4,5,6}};
int[][] array1 = {{1,2,3},{4,5,6}};
int[][] array2 = new int[2][3];

在这里插入图片描述
二维数组的每个元素都是一个一维数组
在这里插入图片描述
在这里插入图片描述

遍历

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. 把二维数组打印成字符串
int[][] array1 = {{1,2,3},{4,5,6}};
System.out.println(Arrays.deepToString(array1));
// [[1, 2, 3], [4, 5, 6]]

空指针异常

  1. 不规则的二维数组
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();
}

在这里插入图片描述
在这里插入图片描述
二维数组是特殊的一维数组
内存的存储机制是线性的,二维数组的每个元素又都是一个一维数组

在这里插入图片描述

相关文章:

  • 初识仓颉编程语言:高效、简洁与创新的编程选择
  • C++:字符串操作函数
  • uniapp-商城-60-后台 新增商品(属性的选中和页面显示,数组join 的使用)
  • NexBot AI 1.9.3 | 专业AI写作助手,高自由度定制内容,支持中文设置
  • foxmail - foxmail 启用超大附件提示密码与帐号不匹配
  • ESP32 PWM开发对比:底层驱动 VS Arduino封装,谁更适合你?
  • 4.3/Q1,Charls最新文章解读
  • XML介绍及常用c及c++库
  • Transformer 模型与注意力机制
  • LlamaIndex 第九篇 Indexing索引
  • 2025第三届盘古石杯初赛(计算机部分)
  • 系统线程nt!CcPfBootWorker里面的nt!MmPrefetchPages函数分析
  • 接触感知 钳位电路分析
  • 锚点跳转跟踪#
  • NHANES指标推荐:MDS
  • No module named‘serial‘解决办法
  • 【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准
  • 智能AI构建工地安全网:跌倒、抽搐、区域入侵多场景覆盖
  • TII-2024《AGP-Net: Adaptive Graph Prior Network for Image Denoising》
  • 解决CLion控制台不能及时显示输出的问题
  • 高途一季度净利润同比增长1108%: “与吴彦祖一起学英语”短时间内就实现了盈利
  • 遭车祸罹难的村医遇“身份”难题:镇卫生院否认劳动关系,家属上诉后二审将开庭
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯被执行死刑
  • 美联储主席:供应冲击或更频繁,将重新评估货币政策方法中的通胀和就业因素
  • “养胃骗局”大公开,真正有用的方法究竟是?
  • 体坛联播|博洛尼亚时隔51年再夺意杯,皇马逆转马洛卡