繁体   English   中英

在Java中排序和比较整数数组

[英]Sorting and comparing integer arrays in Java

我能够对数组进行排序,并能够在单独的步骤中比较数组,但是当我尝试在同一行中同时进行这两个操作时,会出现错误。 从Java文档中,sort方法应该返回传递给它的相同类型的数组,而equals方法应该返回一个布尔值。

我在这里误解/误解了什么?

这是我测试情况的​​代码:

import java.util.Arrays;

public class test {

    public static void main(String[] args) {
        int[] arr1 = {2,4,5,3,1};
        int[] arr2 = {4,3,2,1,5};

        if (Arrays.equals(Arrays.sort(arr1), Arrays.sort(arr2))) {  // Problem line
        System.out.println("Same contents");
        }
        else {
        System.out.println("Different contents");
        }
    }
}

据我所知,我已经创建了两个内容相同的数组。 然后,我调用Arrays.equals(),并为其2个参数传递在每个数组上调用Arrays.sort()的结果。

尝试编译时,出现以下错误:

test.java:9: error: 'void' type not allowed here
        if (Arrays.equals(Arrays.sort(arr1), Arrays.sort(arr2))) {
                                     ^
test.java:9: error: 'void' type not allowed here
        if (Arrays.equals(Arrays.sort(arr1), Arrays.sort(arr2))) {
                                                        ^
2 errors
shell returned 1

Arrays.sort()方法不返回数组;

做这个:

Arrays.sort(arr1);
Arrays.sort(arr2);
if (Arrays.equals(arr1, arr2)) {
// rest of code

Arrays.sort返回void类型。 您需要有效的数组类型才能使用Arrays.equals(int [] a,int [] a2)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM