数组 Arrays

霸气de小男生 提交于 2019-12-02 10:55:23

数组复制 Arrays类

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){
        /**
         *数组复制
         * Arrays提供了一个copyOfRange方法进行数组复制
         * */
        int a[] = new int[] {18,23,54,67,12,15};
        //copyOfRange(int[] original, int from, int to)
        //第一个参数表示源数组
        //第二个参数表示开始位置(取得到)
        //第三个参数表示结束位置(取不到)
        int[] b = Arrays.copyOfRange(a,0,3);
        for (int i =0; i < b.length; i++){
            System.out.print(b[i]+ " ");
        }


    }

}
结果:
18 23 54 

转换为字符串

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){
/**
         * 转换为字符串
         * Arrays提供了一个toString()方法,直接把一个数组,转换为字符串
         * */
        int a[] = new int[] {18,23,54,67,12,15};
        String content = Arrays.toString(a);
        System.out.println(content);
    }
}

结果:
[18, 23, 54, 67, 12, 15]

排序

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){
/**
         /**
         * 排序
         * Arrays工具类提供了一个sort方法
         * */
        int a[] = new int[] {18,63,23,45,23,76};
        System.out.println("排序前: ");
        System.out.println(Arrays.toString(a));
        Arrays.sort(a);
        System.out.println("排序后: ");
        System.out.println(Arrays.toString(a));
    }
}

结果:
排序前: 
[18, 63, 23, 45, 23, 76]
排序后: 
[18, 23, 23, 45, 63, 76]

搜索

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){
/**
        /**
         * 搜索
         * 查询元素出现的位置
         * 注意:使用binarySearch进行查找之前,必须使用sort进行排序
         * 如果数组中有多个相同的元素,查找结果是不确定的
         * */
        int a[] = new int[]{18,23,54,2,56,62,62};
        Arrays.sort(a);
        System.out.println(Arrays.toString(a));
        //使用binarySearch之前,必须先使用sort进行排序
        System.out.println("数字62出现的位置: "+Arrays.binarySearch(a,62));

    }
}

结果:
[2, 18, 23, 54, 56, 62, 62]
数字62出现的位置: 5

判断是否相同

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){
/**
        /**
         * 比较两个数组内容是否不一样
         
         第二个数组的最后一个元素是8,和第一个数组不一样,所以比较结果是false

         * */
        int a[] = new int[]{18,23,54,2,56,62,62};
        int b[] = new int[]{18,23,54,2,56,62,62};
        System.out.println(Arrays.equals(a,b));

    }
}

结果:true

填充

/**
 * 数组Arrays是针对数组的工具类,可以进行排序,查找,复制填充等功能
 * */
import java.util.Arrays;//导入Arrays类

public class day05 {
    public static void main(String[] args){

        /**
         * 填充
         * 使用同一个值,填充整个数组
         */
        int a[] = new int[10];
        Arrays.fill(a,5);
        System.out.println(Arrays.toString(a));

    }
}

结果:[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]

练习题

public static void main(String[] args){        
/**
         * 需要定义一个5X8的二维数组,然后使用随机数填充
         * 借助Arrays的方法对二维数组进行排序
         */


        int[][] a = new int[5][8];//定义一个5X8的二维数组
        int[] b = new int[40];//定义出一个一维数组的空间
        System.out.println("排序前:");
//        int x = 0 ,y =0;
        for (int i = 0; i < 5; i++) {//分配5行
            for (int j = 0; j < 8; j++) {//分配8列
                a[i][j] = (int) (Math.random() * 100);//使用随机数0-100进行填充
                /**
                 * 使用Arrays工具类进行排序
                 */
            }

                System.out.println(Arrays.toString(a[i]));
                System.arraycopy(a[i],0,b,i*8,8);
        }
        Arrays.sort(b);
        System.out.println("排序后: ");
        for(int i = 0;i<5;i++){
            System.arraycopy(b,i*8,a[i],0,8);
            System.out.println(Arrays.toString(a[i]));
        }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!