JAVA基础 Arrays类
## 介绍几个常用的Arrays类的方法
1.copyOfRange 数组复制
2.toString() 转换为字符串
3.sort() 排序
4.binarySearch() 搜索
5.equals() 判断数组是否相同
6.fill() 填充
1.copyOfRange 数组复制
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
//1.复制数组
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
// copyOfRange(int[] original, int from, int to)
// 第一个参数表示源数组
// 第二个参数表示开始位置(取得到)
// 第三个参数表示结束位置(取不到)
int[] b = Arrays.copyOfRange(a, 0, 3);
for (int c:b) {
System.out.print(c+" ");
}
}
}
2.toString() 转换为字符串
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
//2.把数组转化为字符串,便于查看
int a[] = new int[] { 18, 62, 68, 82, 65, 9 };
String content = Arrays.toString(a);
// 字符串形式[变量 逗号 空格] 例如[18, 62, 68, 82, 65, 9]
System.out.println(content);
}
}
3.sort() 排序
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
//3.排序 sort() 默认是升序 如果要降序,要重写Comparator的compare方法
int a[]=new int[]{1,2,3,0,-99};
Arrays.sort(a);
System.out.print(Arrays.toString(a));
}
}
4.binarySearch() 搜索
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
//3.排序 sort() 默认是升序 如果要降序,要重写Comparator的compare方法
int a[]=new int[]{1,2,3,0,-99};
Arrays.sort(a);
System.out.print(Arrays.toString(a));
//4.binarySearch() 搜索使用之前要调用sort()方法 binarySearch()返回的是数组中元素的下标
int index=Arrays.binarySearch(a,2);
System.out.print(index);
}
}
5.equals() 判断数组是否相同
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
//fill(数组a,数组b)
int a[]=new int[]{1,2,3,4};
int b[]=new int[]{1,2,3,4};
System.out.print(Arrays.equals(a,b));//结果为true
}
}
6.fill() 填充
mport java.util.Arrays;
public class code25 {
public static void main(String[] args) {
int a[] = new int[10];
//a数组的元素全部是5
Arrays.fill(a, 5);
System.out.println(Arrays.toString(a));
}
}
7.练习
首先定义一个5X8的二维数组,然后使用随机数填充满。
借助Arrays的方法对二维数组进行排序。
参考思路:
先把二维数组使用System.arraycopy进行数组复制到一个一维数组
然后使用sort进行排序
最后再复制回到二维数组。
import java.util.Arrays;
public class code25 {
public static void main(String args[]){
// 首先定义一个5X8的二维数组,然后使用随机数填充满。
int a[][]=new int[5][8];
//(int)(Math.random() * 100)
for(int i=0;i<5;i++){
for (int j=0;j<8;j++)
a[i][j]=(int)(Math.random() * 100);
}
//定义长度为40的一维数组
int b[]=new int[40];
//二维数组转一维数组
for(int i=0;i<5;i++){
//0--》i*8
System.arraycopy(a[i], 0, b, i*8, 8);
}
//排序
Arrays.sort(b);
//定义二维数组
int c[][]=new int[5][8];
// 一维数组转二维数组
for (int i = 0; i < 5; i++) {
//i*8-->0
System.arraycopy(b, i*8, c[i], 0, 8);
}
//打印二维数组
for(int i=0;i<5;i++){
for (int j=0;j<8;j++)
System.out.print(c[i][j]+" ");
System.out.println();
}
}
}