Java 如何将数组列表的最大值排序为最小值
首先,我需要对数组列表进行最大值排序,我已经这样做了,但如果数组大小超过10,则不会进行排序Java 如何将数组列表的最大值排序为最小值,java,Java,首先,我需要对数组列表进行最大值排序,我已经这样做了,但如果数组大小超过10,则不会进行排序 Collections.sort(str_position); Collections.reverse(str_position); 排序数组列表之前[4,6,7,9,10,11,8,5,2,1] 对数组列表进行排序后,[9、8、7、6、5、4、2、11、10、1]问题可能在于您正在对字符串进行排序。将它们解析为int/long,然后进行排序。只需使用Arrays.sort(str_position,
Collections.sort(str_position);
Collections.reverse(str_position);
排序数组列表之前[4,6,7,9,10,11,8,5,2,1]
对数组列表进行排序后,
[9、8、7、6、5、4、2、11、10、1]
问题可能在于您正在对字符串进行排序。将它们解析为int/long,然后进行排序。只需使用Arrays.sort(str_position,Collections.reverseOrder())但是str_位置应该是整数数组,如果你想把它们作为整数排序,否则就按字母顺序排序,这就是为什么1、10和11是一个接一个的。您可以解析所有项并将它们保存在新数组中,如下所示:
int[] int_position = new int[str_position.length];
for(int i = 0; i < str_position.length; i++){
int_position[i] = Integer.parseInt(str_position[i]);
}
int[]int_position=新的int[str_position.length];
对于(int i=0;i
根据您的实际需要,几乎没有解决方案。
如果你真的只需要数字,那么就用数字代替字符串,这样排序就可以了
如果您真的需要字符串,这里有一个非常有趣的alghoritm:。在那里可以找到java实现
编辑:alphanum算法的作用
Alphanum算法对包含字母和数字混合的字符串进行排序。给定混合字符和数字的字符串,它按值顺序对数字排序,而非数字按ASCII顺序排序。最终的结果是自然的排序顺序
Edit2:
文件说:
要使用此类:
使用java.util.Collections类中的静态“sort”方法:
排序(您的_列表,新的AlphanumComparator())
显示如何执行的代码我认为arraylist中的对象是字符串类型…将它们更改为整数类型for(int i=0;i“11”<“2”
),而不是整数排序(使用数字进行比较:11>9
)。是的,我正在对字符串数组进行排序,如果我改为整数,表示效果很好,谢谢大家