//测试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));
}
}