源自韩顺平 零基础30天学java笔记
目录
一、Arrays类介绍
Arrays在java.util包下,即工具包下,其包下的类中方法大都是static的,而静态方法是可以不创建对象之间通过类名就可以访问的,非常方便。
如Math.sqrt()函数的调用。
二、Arrays类中的常见方法
1.toString方法:将数组一字符串形式打印出来。
2.sort排序(!!!)
直接使用:Arrays.sort(integers);
定制排序:
Arrays.sort(integers, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
Integer n1=(Integer)o1;
Integer n2=(Integer)o2;
return n2-n1;
}
});
3.binarySearch通过二分搜索法进行查找。
Integer[] arr={1,123,2,90,567};
int i = Arrays.binarySearch(arr, 92);
System.out.println(i);
数组无序时不能使用二分查找。
4.copyOf数组元素的复制
Integer[] newarr = Arrays.copyOf(arr, arr.length);
数组元素的复制:从arr数组中拷贝arr.length长度的数据到新数组newarr中
5.fill数组元素的填充
Integer[] num=new Integer[]{9,3,2};
Arrays.fill(num,99);
数组元素的填充-将原数组中的元素全部替换为指定的值。
6.equals比较两个数组元素内容是否完全一致
7.asList将一组值转化为list
List integers = Arrays.asList(2, 3, 5, 4, 8, 6, 7);
System.out.println(integers);
将一组值转化为list集合
三、Arrays的模拟排序
//--------冒泡+定制排序:可自行决定排序的顺序。
public static void bubble01(int[] arr, Comparator c){
int temp=0;
for (int i=0;i<arr.length-1;i++){
for (int j = 0; j < arr.length - 1 - i; j++) {
if (c.compare(arr[j],arr[j+1])>0){
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
}
public static void main(String[] args) {
int[] arr={1,-1,3,98,24,5,7,9};
bubble01(arr, new Comparator() {
@Override
public int compare(Object o1, Object o2) {
int n1=(Integer)o1;
int n2=(Integer)o2;
return n2-n1;
}
});
System.out.println(Arrays.toString(arr));
}