文章目录
1.Arrays类
JDK中提供了一个专门用于操作数组的工具类,即Array类,位于java.util包中,该类提供了一系列方法来操作数组,比如排序、复制、比较、填充等、用户直接调用这些方法即可,不需要自己编码去实现,降低开发难度。
方法 | 返回值 | 说明 |
---|---|---|
equals(array1,array2) | boolean | 比较两个数组是否相等 |
sort(array) | void | 对数组arry元素的进行升序的排列 |
toString(arrry) | string | 将一个数组arry转换一个字符串 |
fill(arry,val) | void | 把array数组中所有的元素都赋值为val |
copyOf(arry,length) | 与arry数据类型一致 | 把数组arry复制成一个长度为length的新数组 |
binarySearch(array,val) | int | 查询元素值val在数组arry中的下标 |
2.Arrays类应用
1.比较两个数组是否相等
Arrays类的equals()方法·用于比较两个数组是否相等,只有当两个数组长度相等,对应的位置的元素也就一一相等时,该方法就返回true否则返回false
例1:
需求:
初始化3个整数的一维数组,使用Arrays类的equals()方法判断是否两两相等,并输出结果
package Test3;
import java.lang.reflect.Array;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 11:10
* @TODO
*/
public class Test1{
public static void main(String[] args) {
int[] arr1 = {10, 50, 40, 30};
int[] arr2 = {10,50,40,30};
int[] arr3 = {60,50,65};
System.out.println(Arrays.equals(arr1,arr2));
System.out.println(Arrays.equals(arr2,arr3));
}
}
2.对数组元素进行升序排序
Arrays类的sort()方法对数组的元素进行升序排列,也就是从小到大的顺序排列
例2:
需求:
分别对1班,2班,3班的学员成绩进行排序
实现步骤:
1.初始化一个整型的二维数组
2.使用for循环去遍历二维数组
3.使用Arrays类的sort()方法对二维数组的元素进行升序排列
4.输出验证排序
package Test3;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 11:17
* @TODO
*/
public class Test2 {
public static void main(String[] args) {
int[][] array=new int[][]{{99,66},{92,55,66},{99,55}};
for(int i=0;i<array.length;i++) {
String string = (i + 1) + "班";
Arrays.sort(array[i]);
System.out.println(string + "成绩排序后");
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
}
3.将数组转换成字符串
toString()将一个数组转换成一个字符串,它按照顺序把多个数组元素连接一起,多个元素之间使用英文逗号和空格隔开
例3:
package Test3;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 14:51
* @TODO
*/
public class Test3 {
public static void main(String[] args) {
int []arr={10,20,30};
System.out.println(arr);
System.out.println(Arrays.toString(arr));
}
}
4.将数组所有的元素赋值为相同的值
Arrays类中提供了一个fill(arry,val),此方法用于把数组arry所有的元素都赋值为val
例4:
package Test3;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 14:55
* @TODO
*/
public class Test4 {
public static void main(String[] args) {
int arr[]={10,20,30,40};
Arrays.fill(arr,20);
System.out.println(Arrays.toString(arr));
}
}
5.将数组复制成一个长度为设定值的新数组
实现的步骤:
1.初始化一个长度为4的整型数组
2.使用copyOf()方法
例5:
package Test3;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 14:58
* @TODO
*/
public class Test5 {
public static void main(String[] args) {
int arr[]={10,20,30,40};
int arr1[]= Arrays.copyOf(arr,3);
System.out.println(Arrays.toString(arr1));
int arr2[]= Arrays.copyOf(arr,5);
System.out.println(Arrays.toString(arr2));
int arr3[]= Arrays.copyOf(arr,4);
System.out.println(Arrays.toString(arr3));
}
}
注意:
Arrays类的copyOf(array,length)方法可以进行数组复制,把原数复制成一个新数组,其中length是新数组的长度。如果length小于原数组的长度,则新数组就是原数组的前面length个元素;如果length大于原来数组的长度,则新数组前面的元素的原数组的所有元素;后面元素是按数组类型补充默认的初始值,如整型补充0,浮点型补充0.0等。
6.查询元素在数组中的下标
例5:
package Test3;
import java.util.Arrays;
/**
* @作者:Xem626
* @date: 2022/7/6 15:03
* @TODO
*/
public class Test6 {
public static void main(String[] args) {
int arr[]={10,20,90,40};
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
int index=Arrays.binarySearch(arr,40);
System.out.println(index);
}
}
本章总结:
1.数组可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型
2.数组中的元素通过数组下标进行访问,数组下标从0开始
3.二维数组实际上是一个一维数组,它的每个元素是一个一维数组
4.使用Arrays类提供的方法可以方便的对数组中的元素进行排序,查询等操作。
5.JDK1.5之后提供了增强for循环,可以用来实现对数组和集合中数据的访问