java的array类_Java常用类:Arrays类

一、简介

全类名:java.util.Arrays

描述:

此类包含用来操作数组(比如排序和搜索)的各种方法。

此类还包含一个允许将数组作为列表来查看的静态工厂。

注意:

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

Arrays类中的方法都是'static'修饰的静态方法,在使用的时候可以直接使用类名进行调用,而'不用'使用对象来调用(注意:是'不用'而不是'不能')。

二、常用方法

Ⅰ、打印数组

方法:

toString(Object[] a):将数组对象的内容转换转换成字符串。

deepToString(Object[] a):可以将多维数组对象的内容转换转换成字符串。

示例:

public static void main(String[] args) {

int[][] arrayObject = {{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 6}};

System.out.println(Arrays.toString(arrayObject));//[[I@5674cd4d, [I@63961c42, [I@65b54208, [I@1be6f5c3, [I@6b884d57]

System.out.println(Arrays.deepToString(arrayObject));//[[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]]

}

Ⅱ、数组元素排序

方法:

sort(Object[] a):将数组对象的元素按升序排序,排序规则依据该种元素的类在实现Comparable接口的compareTo方法时的实现逻辑。

sort(T[] a, Comparator super T> c):将数组对象的元素按照自定义的排序规则进行排序,排序规则通过传入一个自定义的Comparator接口的实现类对象参数来指定。

示例:

public static void main(String[] args) {

int[] intArr = {1, 5, 3, 2, 4};

Arrays.sort(intArr);

System.out.println(Arrays.toString(intArr));//[1, 2, 3, 4, 5]

int[][] arrayObject = {{1, 2}, {1}, {1, 2, 3, 4}, {1, 2, 3}, {3, 4}};

/*

根据内层数组的长度对二维数组的内层数组进行排序。

匿名内部类可以用Lambda表达式简化为:(o1, o2) -> Integer.compare(o1.length, o2.length)

或者替换为:Comparator.comparingInt(o -> o.length)

*/

Arrays.sort(arrayObject, new Comparator() {

@Override

public int compare(int[] o1, int[] o2) {

return Integer.compare(o1.length, o2.length);

}

});

System.out.println(Arrays.deepToString(arrayObject));//[[1], [1, 2], [3, 4], [1, 2, 3], [1, 2, 3, 4]]

}

Ⅲ、二分法查找元素

方法:

binarySearch(Object[] a, Object key):用二分查找算法在给定数组中搜索给定值的对象,若存在则返回其下标,若不存在则返回负数。

注意:

必须在调用binarySearch方法之前先对数组进行排序(通过sort方法等),如果没有对数组进行排序,则结果是不确定的。

如果数组包含多个带有指定值的元素,则无法保证找到的是哪一个。

示例:

public static void main(String[] args) {

int[] intArr = {1, 5, 3, 2, 4};

/* 必须在调用binarySearch方法之前先对数组进行排序 */

Arrays.sort(intArr);

System.out.println(Arrays.binarySearch(intArr, 3));//2

}

Ⅳ、填充元素

方法:

fill(Object[] a, Object val):将数组的所有元素用指定的值进行替换。

fill(Object[] a, int fromIndex, int toIndex, Object val):将数组的指定起始下标到指定截止下标前的所有元素用指定的值进行替换。起始下标的元素会被替换,截止下标的元素不会被替换。

示例:

public static void main(String[] args) {

int[] intArr = {1, 5, 3, 2, 4};

Arrays.fill(intArr, 1, 3, 6);

System.out.println(Arrays.toString(intArr));//[1, 6, 6, 2, 4]

Arrays.fill(intArr, 7);

System.out.println(Arrays.toString(intArr));//[7, 7, 7, 7, 7]

}

Ⅴ、数组转换List

方法:

asList(T... a):将一组同类型的参数转换为List(ArrayList)集合。

示例:

public static void main(String[] args) {

List list = Arrays.asList(1, 2, 3, 4, 5);

/* List集合转数组 */

Integer[] array = list.toArray(new Integer[0]);

System.out.println(Arrays.toString(array));//[1, 2, 3, 4, 5]

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值