如何使用 Java 对数组进行排序并在其中搜索元素



问题描述

如何对一个数组进行排序并从中搜索一个元素?

解决方案

以下示例展示如何使用 sort() 和 binarySearch() 方法来完成此任务。用户定义的方法 printArray() 用于显示输出 −

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, 2);
      System.out.println("Found 2 @ " + index);
   }
   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();
   }
}

结果

上述代码示例将生成以下结果。

Sorted array: [length: 10]
-9, -7, -3, -2, 0, 2, 4, 5, 6, 8
Found 2 @ 5

问题描述

如何比较两个数组?

public class HelloWorld { 
   public static void main (String[] args) {
      int arr1[] = {1, 2, 3};
      int arr2[] = {1, 2, 3};
      
      if (arr1 == arr2) System.out.println("Same"); 
      else System.out.println("Not same");
   } 
}

上述代码示例将生成以下结果。

Not same   

另一个数组比较示例

import java.util.Arrays;

public class HelloWorld { 
   public static void main (String[] args) { 
      int arr1[] = {1, 2, 3};
      int arr2[] = {1, 2, 3};
   
      if (Arrays.equals(arr1, arr2)) System.out.println("Same"); 
      else System.out.println("Not same");
   }
}

上述代码示例将生成以下结果。

Same   
java_arrays.htm
广告