首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中,排序数组的arrylist整数列表不依赖于它们的长度

在java中,排序数组的arrylist整数列表不依赖于它们的长度
EN

Stack Overflow用户
提问于 2018-10-10 05:22:41
回答 1查看 59关注 0票数 1

我想对整数数组的ArrayList排序,它们的长度是不同的

我尝试了这里的代码,sort an arraylist of arraylist of integers它是有效的,但它的优先顺序是长度优先,而不是值优先

例如:

2、2、2、3

2、2、3、4

2、2、90

其输出将如下所示:

2、2、90

2、2、2、3

2、2、3、4

而我想要的顺序是:

2、2、2、3

2、2、3、4

2、2、90

有人能帮我解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2018-10-10 05:34:58

您正在查看的代码只比较每个列表中的第一个数字,因此它们的结束顺序实际上不是按大小排列的;它是任意的。

关键是这一部分

代码语言:javascript
复制
public int compare(List<Integer> o1, List<Integer> o2) {
    return o1.get(0).compareTo(o2.get(0));
}

你需要像这样的东西

代码语言:javascript
复制
public int compare(List<Integer> o1, List<Integer> o2) {
    for (int i = 0; i < o1.size(); i++) {
        if (o1.get(i).compareTo(o2.get(i)) != 0) {
            return o1.get(i).compareTo(o2.get(i));
        }
    }
}

我留下了这篇不完整的文章,因为我认为这对你来说是有教育意义的,如果我给你完整的答案,什么也做不了。我在这里所写的代码片段只能正确地比较相同长度的列表。如果第二个列表更长,额外的值将被忽略,如果第一个列表更长,它将出错。我将把它作为解决这些问题的练习留给您。:-)

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

https://stackoverflow.com/questions/52729525

复制
相关文章

相似问题

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