热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JAVA数组数组工具类Arrays类中的方法

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。除非特别注明,否则如果指定数组引用为,则此类中的方法都会抛出。类中提供的方法,直



  • 此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。





  • 除非特别注明,否则如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException





  • Arrays类中提供的static方法,直接使用类名调用就可以。



graph RL;
java.util.Arrays-->java.lang.Object;

方法



  • copy复制数组
    static TYPE[] copyOf(TYPE[] original, int newLength)
    static TYPE[] copyOfRange(TYPE[] original, int from, int to)
    复制指定的数组,截取或用 false填充(如有必要),以使副本具有指定的长度。

public static void getSort() {
int[] arrOne= {1, 2, 3, 4, 5};
int[] arrTwo = new int[5];
int[] arrThree = new int[10];
// 将arrOne复制到arrTwo
arrTwo = Arrays.copyOf(arrOne, 5);
System.out.println("arrTwo" + Arrays.toString(arrTwo));
/* arrTwo[1, 2, 3, 4, 5] */

// 将arrOne的第3-5位拷贝成一个新数组并赋值给arrThree
arrThree = Arrays.copyOfRange(arrOne, 2, 4);
System.out.println("arrThree" + Arrays.toString(arrThree));
/* arrThree[3, 4] */
}


  • 二分查找
    static int binarySearch(TYPE[] a, TYPE key)
    static int binarySearch(TYPE[] a, int fromIndex, int toIndex, TYPE key)
    使用二分搜索法来搜索指定的类型型数组的范围,以获得指定的值。r如果查找不到,就返回key可能在的位置的负值-1

public static void search() {
int[] arrOne= {1, 2, 3, 4, 5};
// 查找
int index = Arrays.binarySearch(arrOne, 4);
int index1 = Arrays.binarySearch(arrOne, 7);
System.out.println("4所在位置的索引为:" + index +
",7所在的索引值为:" + index1);
/* 4所在位置的索引为:3,7所在的索引值为:-6 */
}


  • equals判断
    static boolean equals(TYPE[] a, TYPE[] a2)
    如果两个指定的 TYPE 型数组彼此相等,则返回 true。

public static void getEquals() {
int[] arrOne= {1, 2, 3, 4, 5};
int[] arrTwo = {1, 2, 3, 3, 3};
int[] arrThree = {1};
int[] arrFour = {1, 2, 3, 4, 5};
System.out.println("完全相同的两个数组对比:" +
Arrays.equals(arrOne, arrFour));
System.out.println("length相同元素不同的对比:" +
Arrays.equals(arrOne, arrTwo));
System.out.println("length不同,元素也不同:" +
Arrays.equals(arrOne, arrThree));
/*
* 完全相同的两个数组对比:true
* length相同元素不同的对比:false
* length不同,元素也不同:false
*/
}


  • fill填充
    static void fill(TYPE[] a, TYPE val)
    static void fill(TYPE[] a, int fromIndex, int toIndex, TYPE val)
    将指定的 TYPE 值分配给指定 TYPE 型数组指定范围中的每个元素。

public static void getFill() {
int[] arrOne= {1, 2, 3, 4, 5};
int[] arrTwo = {1, 2, 3, 4, 5};
// arrOne全部填充;arrTwo下标为1-3位的填充
Arrays.fill(arrOne, 0);
Arrays.fill(arrTwo, 1, 3, 0);
System.out.println("填充后的arrOne:" + Arrays.toString(arrOne));
System.out.println("填充后的arrTwo:" + Arrays.toString(arrTwo));
/*
* 填充后的arrOne:[0, 0, 0, 0, 0]
* 填充后的arrTwo:[1, 0, 0, 4, 5]
*/


  • toString
    static String toString(TYPE[] a)
    返回指定数组内容的字符串表示形式。

  • 排序操作
    static void sort(TYPE[] a)
    对指定的 TYPE 型数组按数字升序进行排序。

public static void getSort1() {
int[] arrOne= {2, 4, 763, 12, 34, 1213, 87};
System.out.println("排序前的数组:" + Arrays.toString(arrOne));
// 排序
Arrays.sort(arrOne);
System.out.println("排序后的数组:" + Arrays.toString(arrOne));
/*
* 排序前的数组:[2, 4, 763, 12, 34, 1213, 87]
* 排序后的数组:[2, 4, 12, 34, 87, 763, 1213]
*/
}


  • System类中的copyarray
    static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

// arraycopy()方法
int[] One= {1,2,3,4,5};
int[] two = {6,7,8};
System.arraycopy(two, 1, one, 3, 2);
System.out.println(Arrays.toString(one));
System.out.println(Arrays.toString(two));
/*
* [1, 2, 3, 7, 8] [6, 7, 8]
*/

总结




  • Arrays类提供的方法中,有一个原则是包头不包尾。如fromIndex=1toIndex=4,要操作的元素下标为1,2,3,而4是不包含在内的,简单来记就是说toIndex-fromIndex的值就是会操作的元素个数。

  • 现在新增的带有deep的两个方法是用来操作多维数组的。



推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有