Java 如何检查排序前和排序后的数组是否相等
我知道这听起来很疯狂。我是个编程新手,在某些方面遇到了麻烦。 最近,我一直在做一些数组,我知道如何像使用array.equals(object,object)一样检查另外两个数组是否相等,但我的意思是我正在处理一个数组。我想检查数组是否在排序后和排序前等于Java 如何检查排序前和排序后的数组是否相等,java,arrays,Java,Arrays,我知道这听起来很疯狂。我是个编程新手,在某些方面遇到了麻烦。 最近,我一直在做一些数组,我知道如何像使用array.equals(object,object)一样检查另外两个数组是否相等,但我的意思是我正在处理一个数组。我想检查数组是否在排序后和排序前等于 System.out.println("your array before sorted: " + Arrays.toString(size)); //System.out.println("total of the elements: "
System.out.println("your array before sorted: " + Arrays.toString(size));
//System.out.println("total of the elements: " +sum);
Arrays.sort(size);
System.out.println("your array after sorted: "+ Arrays.toString(size));
if(Arrays.equals(size, size)) {
System.out.println("true af ");
}
我试图创建一个存储排序数组的变量,但它给了我一个错误无法从void转换为int或其他内容”,因为Arrays.sort(object)函数返回void
。
任何帮助都将不胜感激。必须将数组的内容复制到另一个数组中,以便进行比较,否则您将引用同一个数组
import java.util.Arrays;
public class Test {
public static void main(String[] args) {
int[] sizebefore = { 3, 5, 1, 8 };
int[] sizeafter = new int[sizebefore.length];
System.arraycopy(sizebefore, 0, sizeafter, 0, sizebefore.length);
Arrays.sort(sizeafter);
System.out.println("your array before sorted: " + Arrays.toString(sizebefore));
System.out.println("your array after sorted: " + Arrays.toString(sizeafter));
if (Arrays.equals(sizebefore, sizeafter)) {
System.out.println("Matches after sort ");
} else {
System.out.println("Doesn't match after sort ");
}
}
}
将代码粘贴为文本,而不是屏幕截图。您可以将数组复制到另一个数组中并进行检查。您正在执行类似于
size==size
的比较。这与1==1
相同,始终是正确的。您需要在排序操作之前复制数组,然后比较两个数组。我不想创建两个数组,但它看起来很好好的,谢谢