JDK中提供了一个专门用于操作数组的工具类,即 Arrays 类,位于 Java。util 包中。该类提供了一系列方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可,不需要自己编码实现,降低了开发难度。
Arrays 类常用方法
public static void main(String[] args) { //equals()方法用于比较两个数组是否相等。只有当两个数组长度相等,且对应位置的元素也一一相等时,该方法返回 true;否则返回false。 //sort()方法对数组的元素进行升序排列,即以小到大顺序排列。 //toString()方法将数组转换为字符串。 //fill()方法替换数组的所有元素为相同的元素。 //copyOf()方法将数组复制成一个长度为设定值得新数组。 //binarySearch()方法查询数组元素在数组中的下标。 int[] arr1= { 10,40,30,20,50}; int[] arr2= { 10,20,30,40,50}; //使用 Arrays 类 equals 方法比较arr1和 arr2 的长度即元素是否相等 System.out.println("用equals比较后:"+Arrays.equals(arr1, arr2)); //替换数组元素 统一替换 Arrays.fill(arr1,30); System.out.println("用fill替换后:"+Arrays.toString(arr1)); //复制长度4的数组 int[] arr3 = Arrays.copyOf(arr1,3); System.out.println("复制数组后:"+Arrays.toString(arr3)); //升序 Arrays.sort(arr1); //查询某个元素在数组的下标 int index = Arrays.binarySearch(arr1, 30); System.out.println("查找元素下标:"+index); }
输出结果:
用equals比较后:false用fill替换后:[30, 30, 30, 30, 30]复制数组后:[30, 30, 30]查找元素下标:2
》使用Arrays 对数组升序排序
public static void main(String[] args) { Scanner input = new Scanner(System.in); //声明一个成绩数组 int[] scores =new int[5]; //循环录入学生成绩 for (int i = 0; i < scores.length; i++) { System.out.println("输入第"+i+"名学生的成绩:"); scores[i]=input.nextInt(); } //升序排序前学员成绩循环输出 System.out.println("升序排序前:"); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i]+"\t"); } Arrays.sort(scores); //对数组进行升序排序 System.out.println("\n升序后:"); for (int i = 0; i < scores.length; i++) { System.out.print(scores[i]+"\t"); } }
》通过compareToIgnoreCase 比较两个字符串的大小
public static void main(String[] args) { Scanner input = new Scanner(System.in); String[] musics =new String[5]; musics[0]="Island"; musics[1]="Ocean"; musics[2]="Pretty"; musics[3]="Sun"; int index=musics.length-1; System.out.print("插入前的数组为:"); for (int i = 0; i < musics.length; i++) { if(musics[i]==null) //为null的时候跳出 break; System.out.print(musics[i]+"\t"); } System.out.println("\n请输入歌曲名称:"); String music =input.next(); //查找要插入元素的下标 for (int i = 0; i < musics.length; i++) { if(musics[i].compareToIgnoreCase(music)>0){ System.out.println(musics[i].compareToIgnoreCase(music)); index=i; break; } } //数组元素后移 for (int i =musics.length-1 ; i> index; i--) { musics[i] = musics[i-1]; } musics[index]=music; System.out.println("插入下标为:"+index); System.out.print("插入后的数组为:"); for (int i = 0; i < musics.length; i++) { System.out.print(musics[i]+"\t"); } }