【发布时间】:2016-05-23 22:50:14
【问题描述】:
我想在java中对一个int数组列表进行排序,具体如下:
1, 2
1, 3
2, 3
1, 4
2, 4
3, 1
应归类为:
1, 2
1, 3
1, 4
2, 3
2, 4
3, 1
我阅读了其他一些帖子,并一直在尝试使用类似的东西来回答排序String[]:
Collections.sort(listOfStringArrays,new Comparator<String[]>() {
public int compare(String[] strings, String[] otherStrings) {
return strings[1].compareTo(otherStrings[1]);
}
});
把它改成:
Collections.sort(listOfIntArrays,new Comparator<int[]>() {
public int compare(int[] ints, int[] otherInts) {
return ints[0].compareTo(otherInts[0]);
}
});
但这不起作用,错误是返回行Cannot invoke compareTo(int) on the primitive type int
谁能帮帮我。
【问题讨论】:
-
要清楚,它实际上是一个
String[]而不是两个int[]? -
您可以通过
<、<=、==直接比较ints。>=和>。此外,如果它们与第二个元素相同,您可能希望首先按第一个元素 ant 排序。关于什么时候返回什么的细节,看看the correspondig Javadoc -
@4castle 这是两个
int[],String[]代码是我在该站点的另一篇文章中找到的,并且一直在尝试更改它以使其适用于int[]。 @Turing85 我怎么能做到这一点?我对 Java 还很陌生,一直在尝试阅读更多文档,但我不知道该怎么做。 -
@CConard96 会因为Autoboxing而过度设计并变慢。
标签: java arrays sorting arraylist