Java 如何在不考虑正负值的情况下对整数数组列表进行排序

Java 如何在不考虑正负值的情况下对整数数组列表进行排序,java,sorting,comparator,comparable,Java,Sorting,Comparator,Comparable,假设我们有一些带有值的ArrayList: List<Integer> list = new ArrayList<Integer>(40); list.add(5); list.add(-5); list.add(-1); list.add(10); list.add(-12); List List=newarraylist(40); 增加(5); 增加(-5); 增加(-1); 增加(10); 增加(-12); 自然排序将是:[-12,-5,-1,5,10],带有集

假设我们有一些带有值的ArrayList:

List<Integer> list = new ArrayList<Integer>(40);
list.add(5);
list.add(-5);
list.add(-1);
list.add(10);
list.add(-12);
List List=newarraylist(40);
增加(5);
增加(-5);
增加(-1);
增加(10);
增加(-12);
自然排序将是:[-12,-5,-1,5,10],带有集合。排序(列表)

但是我怎么能“忽略”(很抱歉定义)正负值,然后得到以下结果:[-1,-5,5,10,-12]


在此之前,感谢您抽出时间回答我的问题。

您可以使用
Math.abs()
函数:

    Collections.sort(list, new Comparator<Integer>() {
        public int compare(Integer o1, Integer o2) {
            return Integer.compare(Math.abs(o1), Math.abs(o2));
        }
    });
或者更简单的是,有现成的比较器:

Collections.sort(list, Comparator.comparingInt(Math::abs));
如果我们至少谈论java-8,最简单的一个就是:

list.sort(Comparator.comparingInt(Math::abs));

写一个使用。你做过任何类型的研究吗?@KevinWallis显然他试图通过
Collections.sort()
对其进行排序。我建议重新讨论这个问题,因为排序列表在java-8中的方式与简单排序略有不同,更方便arrays@Andremoniy通过Mjollnir的力量,它完成了!谢谢你的快速回答。我真的被卡住了。祝您有个美好的一天。
list.sort(Comparator.comparingInt(Math::abs));