Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays,完成对数据对象的一些基本操作
- 善于查阅JDK文档
- Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用“使用对象来调用”(注意:“不用”不是“不能”)
- 常用的功能
- 给数组赋值:fill方法
- 数组排序:sort方法,升序
- 比较数组:通过equals方法比较数组中元素值是否相等
- 查找数据元素:binarySearch方法能对排序好的数组进行二分查找法操作
package array;
import java.util.Arrays;
public class arrayDemo06 {
public static void main(String[] args) {
int[] a = {1, 2, 4, 5456, 67777, 9999, 6, 8};
System.out.println(a);
System.out.println(Arrays.toString(a));
printArray(a);
Arrays.sort(a);
System.out.println("\n"+Arrays.toString(a));
Arrays.fill(a,0);
System.out.println(Arrays.toString(a));
Arrays.fill(a,2,4,9);
System.out.println(Arrays.toString(a));
}
public static void printArray(int[] a) {
for (int i = 0; i < a.length; i++) {
if (i == 0) System.out.print("[");
if (i == a.length - 1) {
System.out.print(a[i] + "]");
} else {
System.out.print(a[i] + ", ");
}
}
}
}
冒泡排序
- 冒泡排序最出名的排序算法只一,共八大排序
- 代码相对简单,两层循环,外层冒泡轮数,内层依次比较
- 嵌套循环,==时间复杂度O(n²)
package array;
import java.util.Arrays;
public class arrayDemo07 {
public static void main(String[] args) {
int[] a = {1,33,0,0,99,5,2,0};
int[] mysort = mySort(a);
System.out.println(Arrays.toString(a));
}
public static int[] mySort(int[] array) {
int temp = 0;
for (int i = 0; i < array.length - 1; i++) {
boolean flag =false;
for (int j = 0; j < array.length - 1 - i; j++) {
if (array[j]>array[j+1]){
temp = array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
if (flag==false){
break;
}
}
return array;
}
}