在 Java 中对数组进行排序并插入元素

按特定顺序排列数组元素称为排序。通常,排序会按升序或降序排列元素。

对数组进行排序并插入元素

Arrays.sort() 方法按升序排列数组元素。排序后,insertElement() 可用于在正确位置插入新元素以保持数组排序。

语法

以下是 java.util.Arrays.sort() 方法的语法:

public static void sort(Object[] a, int fromIndex, int toIndex)

Java 程序对数组进行排序并插入元素

以下示例显示如何使用 sort () 方法和用户定义的方法 insertElement () 完成任务 -

import java.util.Arrays;

public class MainClass {
   public static void main(String args[]) throws Exception {
      int array[] = { 2, 5, -2, 6, -3, 8, 0, -7, -9, 4 };
      Arrays.sort(array);
      printArray("Sorted array", array);
      
      int index = Arrays.binarySearch(array, 1);
      System.out.println("Didn't find 1 @ " + index);
      
      int newIndex = -index - 1;
      array = insertElement(array, 1, newIndex);
      printArray("With 1 added", array);
   }
   private static void printArray(String message, int array[]) {
      System.out.println(message + ": [length: " + array.length + "]");
      for (int i = 0; i < array.length; i++) {
         if (i != 0){
            System.out.print(", ");
         }
         System.out.print(array[i]);         
      }
      System.out.println();
   }
   private static int[] insertElement(int original[], int element, int index) {
      int length = original.length;
      int destination[] = new int[length + 1];
      System.arraycopy(original, 0, destination, 0, index);
      destination[index] = element;
      System.arraycopy(original, index, destination, index + 1, length - index);
      return destination;
   }
}

输出

Sorted array: [length: 10]
-9, -7, -3, -2, 0, 2, 4, 5, 6, 8
Didn't find 1 @ -6
With 1 added: [length: 11]
-9, -7, -3, -2, 0, 1, 2, 4, 5, 6, 8 

代码说明

代码使用 Arrays.sort() 对数组进行排序。然后,它尝试使用 Arrays.binarySearch() 查找元素 1 的位置。由于 1 不在数组中,因此会计算新索引以将其插入正确的位置,同时保持排序顺序。insertElement() 方法将新元素添加到数组中,printArray() 方法显示更新后的数组。

java_arrays.html