//测试Arrays //记得之前测试过 Math类, // Math类在java.lang包下,是一个最终类,不能构造, //Arrays在java.util下 //它的构造方法是私有的,我们就不能构造了,但是它的方法是公共的静态的,可以通过类使用 import java.util.Arrays; public class TestArrays { public static void main(String[] args){ test(); } public static void test(){ //一个基本数据类型,一个引用数据类型 int[] num = new int[10]; Integer[] integers = new Integer[10]; //首先Arrays是一个工具类,因为他就在util包下面, //Arrays就是为了帮我们处理数组。 //数组的常用操作,遍历,排序,查找某个元素有时需要用循环或者算法实现。 //于是Arrays就提供了一些方法。 //我们也可以写一个数组工具类,但现在我们要学一下这个类的一些方法,思路 //毕竟是sun公司弄的东西 //一、数组遍历 toString(); //还有一个deeptoString(),多维数组变量, System.out.println(Arrays.toString(num));//[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] System.out.println(Arrays.toString(integers));//[null, null, null, null, null, null, null, null, null, null] //试一下2维数组 int[][] arr2 = new int[][]{{1,2,3},{4,5,6},{7,8}}; Integer[][] arr3 = new Integer[][]{{1,2,3},{4,5,6},{7,8}}; System.out.println(Arrays.toString(arr2));//[[I@776ec8df, [I@4eec7777, [I@3b07d329] System.out.println(Arrays.toString(arr3));//[[Ljava.lang.Integer;@41629346, [Ljava.lang.Integer;@404b9385, [Ljava.lang.Integer;@6d311334] System.out.println(Arrays.deepToString(arr2));//[[1, 2, 3], [4, 5, 6], [7, 8]] System.out.println(Arrays.deepToString(arr3));//[[1, 2, 3], [4, 5, 6], [7, 8]] //总结 //1、基本数据类型数值的值和引用数据类型数组的值不同 //2、deepToString能实现深层遍历,这个就非常强大了,我写不了,因为多维数组是一个树 //遍历一棵树,我还要看看这个树是什么样子的, // 数组真的遍历起来我就不懂了。sun公司这一套给我整不会了。 //二、之前已经探究了sort方法, //sort方法可以处理基本数据类型的数组,元素只能值排序,按照升序排序。 //也可以处理引用数据类型的数组,并且我们可以new Comparator类(也就是匿名) // 并重写 compare方法 这个方法参数都是Object对象,返回值是int类型。运行时参数表示22比较的元素,返回值表示位置。 //这个方法可以完成排序 //三、还有就是fill方法,用于将数组的元素批量顺序赋值 //因为数组可以随机存取啊,一个位置存值就不需要调用该方法了。 // public static void fill(int[] a, int val) Arrays.fill(num,10);//所有元素都赋值为10 System.out.println(Arrays.toString(num)); // public static void fill(int[] a, int fromIndex, int toIndex, int val) Arrays.fill(num,1,5,8);//开始下标1,结束下标5(不包括的),值为8 System.out.println(Arrays.toString(num)); } }