1.Arrays类
在java.util包中
- a.包含的方法
- Arrays.sort(数组名)给数组排序
如:Arrays.sort(nums);
意义为:给nums排序
注:给数组排序默认升序
- Arrays.sort(数组名,开始下标,结束下标) 给数组排序
如: Arrays.sort(nums,3,7);
意义为:给nums的3号下标开始排序,到7下标结束,不包含7下标
注:给数组排序默认升序,从开始下标开始排序,到结束下标结束排序不包含结束下标
- Arrays.equals(数组名1,数组名2) 比较两个数组是否相同
System.out.println(Arrays.equals(nums1, nums2));
意义为:比较nums1和 nums2是否一样
注:返回值为boolean型
- toString方法
形式: Arrays.toString(数组名)
//如:
String str=Arrays.toString(nums);
System.out.println(nums.getClass().getSimpleName());
System.out.println(str.getClass().getSimpleName());
//注:.getClass().getSimpleName() 方法是返回变量的类型
//注:上例的结果为:
int[]
String
注:返回出一个String类型的变量,对数组本身不变!!!作用是便于查看数组元素
- fill方法
形式: Arrays.fill(数组名,开始下标,结束下标,替换的值)
意义为:用替换的值将数组的内容替换,
替换内容从开始下标开始替换,直到结束下标结束且不包含结束下标的元素
//如:
int[] nums={3,5,7,9,2,1};
System.out.println(Arrays.toString(nums));
Arrays.fill(nums,1,4,8);
System.out.println(Arrays.toString(nums));
//结果为:
[3, 5, 7, 9, 2, 1]
[3, 8, 8, 8, 2, 1]
注:如果不写开始下标和结束下标就是用替换的值将数组内容全部替换
注:不能只写开始下标不写结束下标。
- copyOf方法 复制指定的数组,指定的长度。
形式: Arrays.copyOf(数组)
//如:
int[] nums={3,5,7,9,2,1};
int[] nums_bak=Arrays.copyOf(nums,3);
System.out.println(Arrays.toString(nums));
System.out.println(Arrays.toString(nums_bak));
//结果为:
[3, 5, 7, 9, 2, 1]
[3, 5, 7]
注·:复制是从0下标开始
- copyOfRange方法 将指定数组的指定范围复制到一个新数组。该范围的初始索引 (from) 必须位于 0 和数组.length(包括)之间。
形式:Arrays.copyOfRange(数组,初始下标,结束下标)
//如:
int[] nums={3,5,7,9,2,1};
int[] nums_bak=Arrays.copyOfRange(nums,2,5);
System.out.println(Arrays.toString(nums));
System.out.println(Arrays.toString(nums_bak));
//结果为:
[3, 5, 7, 9, 2, 1]
[7, 9, 2]
- binarySearch方法 使用二分搜索法来搜索指定的 char 型数组的范围,以获得指定的值。
形式:Arrays.binarySearch(数组名,开始下标,结束下标,要搜索的值)
//如:
int[] nums={3,5,7,9,2,1};
Arrays.sort(nums);
System.out.println(Arrays.toString(nums));
System.out.println(Arrays.binarySearch(nums,5));
//结果为:
[1, 2, 3, 5, 7, 9]
3
注:
- 如果不写开始下标和结束下标就是从0下标开始搜索
- 如果没有对范围进行排序,则结果是不确定的,所以要先排序!!!
- 如果范围包含多个带有指定值的元素,只返回遇到的第一个元素
- 否则返回 (-(插入点) - 1)。插入点 被定义为将键插入数组的那一点
2.多维数组
一般使用最多的是二维数组,这里是以二维数组进行模拟。
三维以及以上太过复杂不便使用。
//定义形式: 类型[][] 数组名=new 类型[行长度][列长度]
//如:
int[][] nums=new int[3][3]
意义为:定义一个行长度为3,列长度为3的整形数组
使用形式: 数组名[下标][下标]; 返回出对应位置的元素
注:无论是几维数组的下标都是从0开始的.不能直接使用数组名,因为数组名指向的不是数据而是存储数据的地址。
简化方法:
形式:类型[][] 数组名={{元素1…},{},…}
注:长度是初始化长度
//如:
int[][] nums={{1},{2,3}, {4}};
注: nums[0][1] 是不存在的!!!
空间抽象图形为: 下标抽象图形为:
注:本次定义开辟的空间如上图
注:上图只是思维上的抽象,实际在内存中无论是几维数组开辟的空间都是连续不间断的