首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中整数数组的排序与比较

Java中整数数组的排序与比较
EN

Stack Overflow用户
提问于 2016-03-07 21:20:58
回答 2查看 973关注 0票数 0

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

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

下面是我测试这种情况的代码:

代码语言:javascript
复制
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()的结果。

在尝试编译时,我会得到以下错误:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-07 21:22:59

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

这样做:

代码语言:javascript
复制
Arrays.sort(arr1);
Arrays.sort(arr2);
if (Arrays.equals(arr1, arr2)) {
// rest of code
票数 3
EN

Stack Overflow用户

发布于 2016-03-07 21:22:55

Arrays.sort返回void类型。需要有效的数组类型才能使用[ Arrays.equals(int[] a,int[] a2)](https://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#equals(int[],%20int[]%29)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35854272

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档