Java 集合的行为。Sort();
我试图了解集合的排序行为。sort()在数字和字母混合出现时的排序行为。通过研究,我了解到数字比字母先排序,字符串按字母顺序排序。但是,这个示例仍然让我有点困惑。Collections.sorts。如果首先对数字进行排序,为什么结果不是[8,30,3A,FF] 在下面的示例中,结果是[30,3A,8,FF]Java 集合的行为。Sort();,java,sorting,collections,Java,Sorting,Collections,我试图了解集合的排序行为。sort()在数字和字母混合出现时的排序行为。通过研究,我了解到数字比字母先排序,字符串按字母顺序排序。但是,这个示例仍然让我有点困惑。Collections.sorts。如果首先对数字进行排序,为什么结果不是[8,30,3A,FF] 在下面的示例中,结果是[30,3A,8,FF] List<String> hex = Arrays.asList("30", "8", "3A", "FF"); Collections.sort(hex); System.ou
List<String> hex = Arrays.asList("30", "8", "3A", "FF");
Collections.sort(hex);
System.out.println(hex);
List hex=Arrays.asList(“30”、“8”、“3A”、“FF”);
集合。排序(十六进制);
系统输出打印项次(十六进制);
但在这个例子中,结果是[30,40,50,60]
List<String> nums = Arrays.asList ("50", "30", "60", "40");
Collections.sort(nums);
System.out.println(nums);
List nums=Arrays.asList(“50”、“30”、“60”、“40”);
集合。排序(nums);
系统输出打印项次(nums);
排序处理字符串的方式是从比较元素的第一个字符开始。如果第一个元素的第一个字符低于第二个元素的第一个字符,则第一个元素较低,因此位于顶部
如果第一个字符相等,则与第二个字符相同,以此类推
示例
“80”与“3600”相比==>“3”低于“8”,因此“3600”低于“80”
“88”比“830”=>“8”等于“8”,然后尝试第二个“3”小于“8”,因此“830”小于“88”排序处理字符串的方式是从比较元素的第一个字符开始。如果第一个元素的第一个字符低于第二个元素的第一个字符,则第一个元素较低,因此位于顶部 如果第一个字符相等,则与第二个字符相同,以此类推 示例 “80”与“3600”相比==>“3”低于“8”,因此“3600”低于“80”
与“830”相比,“8”等于“8”,然后尝试第二个“3”小于“8”,因此“830”小于“88”结果是30、3A、8、FF,因为数字排在第一位,3按字母顺序排在8之前。你不是在比较数字。您正在比较字符串。要对数字进行排序,您需要一个
列表
如果要基于两种不同的数据类型进行排序,则需要在
集合中实现自己的排序方法。使用包装器对象进行排序。结果是30、3A、8、FF,因为数字排在第一位,字母顺序是3排在8之前。你不是在比较数字。您正在比较字符串。要对数字进行排序,您需要一个列表
如果要基于两种不同的数据类型进行排序,则需要在集合中实现自己的排序方法。使用包装器对象进行排序。相关:相关: