四、Arrays类
-
数组的工具类java.util.Arrays
-
由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本操作。
-
查看JDK帮助文档在线文档-jdk-zh
![Arrays]()
-
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能”)
-
具有以下功能:
-
给数组赋值:通过fill方法。
![Arrays-fill]()
-
给数组排序:通过sort方法,按升序。
![Array-sort]()
-
比较数组:通过equal方法比较数组中元素值是否相等。
![Arrays-equal]()
-
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。
![Arrays-binary]()
-
package com.huang.array;
//Arrays类
import java.util.Arrays;public class ArrayDemo05 {public static void main(String[] args) {int[] a={10,2356,5446,2112,55,5585,6,858,5};System.out.println(a);//[I@e73f9ac//打印数组元素System.out.println(Arrays.toString(a));//使用工具类 [10, 2356, 5446, 2112, 55, 5585, 6, 858, 5]printArrays(a);//自己写的方法 [10, 2356, 5446, 2112, 55, 5585, 6, 858, 5]//不要过度依赖工具类!!!Arrays.sort(a);//对数组进行排序:升序System.out.println(Arrays.toString(a));//[5, 6, 10, 55, 858, 2112, 2356, 5446, 5585]Arrays.fill(a,0);//数组填充/数组赋值 全部都被填充为0 [0, 0, 0, 0, 0, 0, 0, 0, 0]Arrays.fill(a,2,4,0);//数组填充/数组赋值 只有元素2~4之间才会被填充为0 [5, 6, 0, 0, 858, 2112, 2356, 5446, 5585]System.out.println(Arrays.toString(a));}//方法public static void printArrays(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(n2)
![Array-冒泡]()
package com.huang.array;import java.util.Arrays;//冒泡排序/*1、比较数组中,两个相邻的元素,如果第一个数比第二个数大,我们就交换他们的位置2、每一次比较都会产生出一个最大(小)的数字3、下一轮则可以少一次排序!4、依次循环直到结束!*/
public class ArrayDemo06 {public static void main(String[] args) {int[] a={1,2,3,15,23,8,9,6,4,7};int[] sort = sort(a);System.out.println(Arrays.toString(sort));}public static int[] sort(int[] array){//临时变量int temp=0;//外层循环,判断我们这个要走多少次//length-1 为了不溢出for (int i = 0; i < array.length-1; i++) {boolean flag=false;//通过flag标识位减少没有意义的比较//内层循环,比较判断两个数,如果第一个数比第二个数大,则交换的位置for (int j = 0; j < array.length-1-i ; j++) {if (array[j+1]>array[j]){temp=array[j];array[j]=array[j+1];array[j+1]=temp;flag=true;}}if (flag==false){break;}}return array;}
}




