Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将数组列表的最大值排序为最小值_Java - Fatal编程技术网

Java 如何将数组列表的最大值排序为最小值

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,

首先,我需要对数组列表进行最大值排序,我已经这样做了,但如果数组大小超过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.reverseOrder())
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
)。是的,我正在对字符串数组进行排序,如果我改为整数,表示效果很好,谢谢大家