数组复制 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]));
}
}