试试这个:
代码:
import java.util.ArrayList;
import java.util.Arrays;
public class ArrayComparison {
// Create arrays
private static int[] array1 = new int[] {2,3,4,7,1};
private static int[] array2 = new int[] {2,3,4,7,1};
private static int[] array3 = new int[] {1,7,4,2,3};
private static int[] array4 = new int[] {1,2,3,4,5,6,7,8,9};
private static int[] array5 = new int[] {2,3,4,5,1};
public static void main(String args[]){
System.out.println(compareArrays(array1, array2)); // True
System.out.println(compareArrays(array1, array3)); // True
System.out.println(compareArrays(array1, array4)); // False
System.out.println(compareArrays(array1, array5)); // False
}
/**
* Compares if a1 is equal than a2, no matter the order
* @param a1 Array 1
* @param a2 Array 2
* @return True if a1 == a2, false if a1 != a2. no matter the order
*/
private static boolean compareArrays(int[] a1, int[] a2){
boolean areEqual=false;
// Clone
int[] a1Aux = a1.clone();
int[] a2Aux = a2.clone();
// Sort
Arrays.sort(a1Aux);
Arrays.sort(a2Aux);
// Compare
if(a1Aux.length == a2Aux.length){
for(int i=0;i<a1Aux.length;i++){
if(a1Aux[i] != a2Aux[i]){
return areEqual;
}
}
return true;
}
return areEqual;
}
}
输出:
true
true
false
false