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

JavaSE_2.1——数组之Arrays工具类

Java提供了一个专门用于操作数组的工具类,即Arrays类,位于Java. util包下【需要导入】。该类提供了一系列方法来操作数组,例如排序、赋值、比较、填充数组 等,用户直接调用这些方法即可【例如:Arrays.sort(数组名)】,这样就降低了开发难度。

Arrays工具类如下表所示:

方法返回类型说明
`equals(array1,array2)`boolean比较两个数组是否相等
sort ( array )void对数组array的元素进行排序【默认升序】
toString( array )String将一个数组转换成字符串输出
fill (array,value)void把数组 array 的所有元素都赋值为 value
fill(arr,start,end,val)void将指定的值分配给指定数组的指定范围的每个元素
copyOf(array,length)与array数据类型一致

把array数组赋值成一个长度为length的新数组

binarySearch(array,val)int使用二分查找的方法检索元素值在数组array中的下标
compare(array1,array2)int按照字典顺序比较数组,前面的数组大,返回大于 0 的值,后面的数组大,返回小于 0 的值.
copyOfRange(arr,start,end)与array数据类型一致将指定数组的指定范围赋值到新数组中
mismatch(array1,array2)int查找并返回两个数组之间第一个不匹配的索引,如果未找到不匹配的,则返回 -1.
mismatch(array1,start1,end1,array2,start2,end2)int查找并返回指定范围内两个数组之间第一个不匹配的索引,如果未找到不匹配的则返回 -1
deepEquals(arr1,arr2)boolean如果两个指定数组,彼此深度相等,则返回 true

测试

1. equals()方法

// equals()方法:比较两个数组是否相等int[] arr1 = {1,2,3,4,5};int[] arr2 = {1,2,3,4,5};boolean is = Arrays.equals(arr1, arr2);System.out.println(is); // true// 这里要注意了://== 比较的是内存地址是否相等,在栈里面比较//equals 比较的是真实值,在堆里面比较System.out.println(arr1 == arr2);   // false

 2. sort()方法以及toString()方法:

// sort()方法:对数组中的元素进行排序int[] arr = {12,45,67,11,2,34};Arrays.sort(arr);System.out.println(Arrays.toString(arr));   //[2, 11, 12, 34, 45, 67]

3.fill()方法:

//fill()方法:填充数组中的每一个元素为同一个值int[] arr = new int[6];Arrays.fill(arr,2);System.out.println(Arrays.toString(arr));   // [2, 2, 2, 2, 2, 2]

4.copyOf()方法:

// copyOf()方法:将一个数组赋值到一个长度为length的新数组中int[] arr = {1,2,4,6,8,0};int[] newArr = Arrays.copyOf(arr, 7);System.out.println(Arrays.toString(newArr));    //[1, 2, 4, 6, 8, 0, 0]

5. binarySearch()方法:

前提是要先对输在进行排序

// binarySearch()方法:利用二分查找,检索数组中的某个元素的下标int[] arr = {1,2,5,7,9,9,43};int target = 2;    // 目标值int i = Arrays.binarySearch(arr, target);System.out.println(i);

6.compare() 方法:

// compare() 方法:比较两个数组的大小,前面的大,返回大于0的值,后面的大,返回小于0的值int[] arr = {1,2,5,7,9,9,43};int[] arr2 = {1,2,5,7,9,43};int i = Arrays.compare(arr,arr2);System.out.println(i);      // -1:表示后面的大

7.copyOfRange()方法:

// copyOfRange()方法:将指定数组的指定范围复制到新数组中int[] arr = {1,2,5,7,9,9,43};int[] newArr = Arrays.copyOfRange(arr, 2, 5);System.out.println(Arrays.toString(newArr));    // [5, 7, 9]

8.System.arraycopy()方法:

        /*System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)src: 源数组,被复制的数组srcPos: 源数组的起始位置,从这一位开始复制dest: 目标数组destPos: 目标数组的位置length: 复制多少元素, 不能比 src.length 大从 src 数组的 srcPos 位置开始复制 length 个元素到 dest 数组的 destPos*/int[] src = new int[]{1, 2, 3, 4, 5, 6};int[] dest = new int[5];System.arraycopy(src, 3, dest, 2, 3);System.out.println(Arrays.toString(dest));

9. mismatch()方法:

        int[] arr = {1, 2, 3, 4};int[] arr1 = {1, 2, 3, 5};int i = Arrays.mismatch(arr, arr1);System.out.println(i);      // 3

http://www.lryc.cn/news/122879.html

相关文章:

  • yolov5、YOLOv7、YOLOv8改进:注意力机制CA
  • ​LeetCode解法汇总617. 合并二叉树
  • 记vite打包vue项目内存溢出问题解决
  • 【SCI征稿】2区SCI,大数据与遥感技术、图像处理技术、物联网(IoT)技术、传感器网络的结合研究
  • java_基础语法及用法
  • C# WPF 开源主题 HandyControl 的使用(一)
  • 探索ES高可用:滴滴自研跨数据中心复制技术详解
  • 指针---进阶篇(二)
  • Python实现SSA智能麻雀搜索算法优化循环神经网络分类模型(LSTM分类算法)项目实战
  • 【go语言基础】结构体struct
  • 显卡服务器适用于哪些场景
  • MySQL DML 数据操作
  • 服务端与网络相关知识
  • 一分钟上手Vue VueI18n Internationalization(i18n)多国语言系统开发、国际化、中英文语言切换!
  • stm32 cubemx can通讯(1)回环模式
  • Python基础小项目
  • Python Opencv实践 - 在图像上绘制图形
  • 管理者应该编码,但不是在工作时
  • 深度学习常用的python库学习笔记
  • C语言属刷题训练【第八天】
  • 阿里云PolarDB数据库倚天ARM架构详细介绍
  • pytest 编写规范
  • Vue.use和vue.component的区别
  • 张驰咨询:提高企业竞争力,六西格玛设计公司(DFSS)在行动
  • 影响 40% 用户,Ubuntu 发行版被曝 2 个安全漏洞
  • SpringCache的介绍和入门案例
  • 闪马智能又上榜!
  • C++中的四种类型转换(Type Casting)方式
  • Linux系列:从0到1用Docker部署springboot项目
  • zabbix监控mysql数据库、nginx、Tomcat