Arrays中常用的五个方法
Arrays是数组的工具类,等同于ArrayUtil,里面存放了一些对数组的操作方法,可用Arrays.方法名的方式调用。
【方法一】toString():返回数组的内容,可以遍历数组,打印元素
int[] arr = {3, 2, 4, 5, 6, 7, 8};
System.out.println(Arrays.toString(arr));
【方法二】copyOfRange():指定范围拷贝数组
int[] arr = {3, 2, 4, 5, 6, 7, 8};
// 复制arr下标3~8(不包括8)的元素到新数组中, 超出arr数组的部分以0填充
int[] newArr = Arrays.copyOfRange(arr, 3, 8);
System.out.println(Arrays.toString(newArr));
【方法三】copyOf:拷贝数组
斐波那契查找中会用到该方法
int[] arr = {3, 2, 4, 5, 6, 7, 8};
// 复制arr中的元素,从第一个元素开始,指定长度,超过arr的部分以0填充
int[] newArr = Arrays.copyOf(arr, arr.length + 3);
System.out.println(Arrays.toString(newArr));
【方法四】setAll():修改集合内所有的元素,返回一个新的数组
double[] price = {150.0, 200.0, 450.0, 900.0, 1450.0, 2000.0};
// 将price里面的所有元素打八折(*0.8)
Arrays.setAll(price, new IntToDoubleFunction() {
@Override
public double applyAsDouble(int value) {
return price[value] * 0.8;
}
});
System.out.println(Arrays.toString(price));
可以用lambda表达式简写上面的代码
double[] price = {150.0, 200.0, 450.0, 900.0, 1450.0, 2000.0};
// 将price里面的所有元素打八折(*0.8)
Arrays.setAll(price, (value) -> price[value] * 0.8);
System.out.println(Arrays.toString(price));
【方法五】Arrays.sort():对数组元素排序
int[] arr = {7, 53, 2, 4, 6, 2, 45, 6, 7, 8, 76, 299};
// 对数组元素排序,默认是升序
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
如果是元素是对象的话,需要加比较器,参考《对象排序的两种实现方式》(blog.csdn.net/qq_42108331…