Arrays工具类
1. 快速排序
public class SortDemo {
public static void main(String[] args) {
int[] x={12,34,21,52,43};
Arrays.sort(x);//数组进行排序的处理 快速排序
for (int i : x) {
System.out.print(i+"\t");
}
}
}
三种排序比较
快速排序 > 选择排序 > 冒泡排序
2. toString方法
public static void main(String[] args) {
int[] x = {12, 32, 15, 45, 23, 67, 41};
Arrays.sort(x);
String s1 = Arrays.toString(x);//[12, 15, 23, 32, 41, 45, 67]
System.out.println(s1);
System.out.println("---------------");
String s = "";
s += "[";
for (int i = 0; i < x.length; i++) {
if (i != x.length - 1) {
s += (x[i] + ", ");
} else {
s += (x[i]);
}
}
s += ("]");
System.out.println(s);
}
3. fill 方法
对数组元素进行填充
public static void main(String[] args) {
int[] x=new int[5];
x[0]=120;
x[3]=150;
//{120,0,0,150,0}
/*for (int i = 0; i < x.length; i++) {
x[i]=100;
}*/
//将数组中所有的值,进行替换填充处理
//Arrays.fill(x,200);
//起始位置包含,结束位置不包含//1-3
Arrays.fill(x,1,3,200);
System.out.println(Arrays.toString(x));
}
4. binarySearch 二分查找
数组必须经过排序(如果没有经过排序进行查找,有可能返回负值)
返回数组中元素所在的下标位置
如果找不到,返回负值
public static void main(String[] args) {
int[] x={12,23,21,56,53,24,19};
Arrays.sort(x); //先排序
System.out.println(Arrays.toString(x)); //转为字符串
int i = Arrays.binarySearch(x, 53);//按住ctrl 鼠标左键点击
System.out.println(i);
}
5. copyOf和copyOfRange方法
public static void main(String[] args) {
int[] x={12,23,34,45,32,51};
int[] y= Arrays.copyOf(x,10);//如果源数组长度没有目标数组长度多,用0做填充
System.out.println(Arrays.toString(y));
/*System.out.println(Arrays.toString(y));
int[] z=Arrays.copyOfRange(x,1,5);
System.out.println(Arrays.toString(z));*/
//int[] m=new int[4];
//参数1 :源数组 参数2:从源数组哪个下标开始复制 参数3:复制到的目标数组
//参数4: 从目标数组的哪个下标位置开始放入 参数5:复制源数组多长
//System.arraycopy(x,1,m,0,4);
//System.out.println(Arrays.toString(m));
}
6. equals和compare方法
public static void main(String[] args) {
int[] x={12,53,44,45,56};
int[] y={22}; //Arrays.copyOf(x,x.length);
//比较两个数组的值是否完全相同
//返回一个boolean类型值,如果两个数组相同 true ,否则false
//boolean b = Arrays.equals(x, y);
//System.out.println("b = " + b);//soutv
//将数组元素按字典顺序比较,相同,返回0,如果前面比后面的小,返回负数
//如果前面比后面的大,返回正数
int i = Arrays.compare(x, y);
System.out.println("i = " + i);
}