Java的Arrays类
- 
数组的工具类 java.util.Arrays 
- 
由于数组对象本身没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作。 
- 
查看JKD帮助文档,在文档里看方法内容。 
- 
Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用而不用使用对象来调用。(是不用而不是不能) 
- 
具有以下常用功能: - 
给数组赋值:通过fill方法 
- 
对数组排序:通过sort方法,按升序。 
- 
比较数组:通过equals方法比较数组中元素值是否相等 
- 
查找数组元素:通过binarySearch方法能对排序好的数组进行二分查找法操作。 
 
- 
- 
在IDEA里打开Arrays的源码查看它类的方法:在 import java.util.Arrays; 处按住 Ctrl 然后点击 Arrays → 在左下角往上处找到 structure → 点击进入便可看到关于 Arrays 的所有可用方法。 
冒泡排序
package com.kuang.array;
import java.util.Arrays;
public class ArrayDemo{
    public static void main(Sting[] args){
        int[] a = {1,5,4,12,9,64,20,128};
        int[] sort = sort(a);
        System.out.println(Arrays.toString(sort));
    }
    public static int[] sort(int[] array){
        //n个数只用比较n-1次即可
        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+1] > array[j]){
                    temp = array[j];
                    array[j] = array[j+1];
                    array[j+1] = temp;
                    flag = true;
                }
            }
            if (flag == false){
                break; //没有次序交换就是后面的排完不用再排了
            }
        }
        return array;
    }
}
稀疏数组
- 
当一个数组中大部分元素为0,或者为同一值的数组时,可以使用稀疏数组来保存该数组。 
- 
稀疏数组的处理方式是 - 
记录数组一共有几行几列,有多少个不同值。 
- 
把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模。 
 
- 
package com.kuang.array;
public class ArrayDemo{
    public static void main(String[] args){
        //创建一个二维数组 11*11 0:没有棋子 1:黑棋 2:白棋
        int[][] array = new int[11][11];
        array[1][2] = 1;
        array[2][3] = 2;
        System.out.println("输出原始的数组");
        
        for (int[] ints : array){
            for (int anInt : ints){
                System.out.println(anInt + "\t");
            }
            System.out.println();
        }
        System.out.println("=============")
        //转换为稀疏数组保存
        int sum = 0;
        for (int i=0; i<11; i++){
            for (int j=0; j<11; j++){
                if (array[i][j] != 0){
                    sum++;
                }
            }
        }
        System.out.println("有效值的个数:" + sum);
        //数组大小一旦确定不可改变所以要先计算其大小才能确定位置
        //知道大小后创建稀疏数组的数组
        int[][] arrays = new int[sum+1][3];
        arrays[0][0] = 11;
        arrays[0][1] = 11;
        arrays[0][2] = sum;
        int count = 0;
        for (int i=0; i<array.length; i++){
            for (int j=0; j<array[i].length; j++){
                if (array[i][j] != 0){
                    ++count;
                    arrays[count][0] = i;
                    arrays[count][1] = j;
                    arrays[count][2] = array[i][j];
                }
            }
        }
        System.out.println("稀疏数组");
        for (int i=0; i<arrays.length; i++){
            System.out.println(arrays[i][0] + "\t" + arrays[i][1] + "\t" + arrays[ 
                    
                     
                    
                