Tom*_*ito 2 java sorting autoboxing wrapper
由于Java 5具有自动装箱功能,为什么我不能使用Comparator对原语进行排序?一个int
不会被包裹成一个Integer
?
Arrays.sort(..)
有专门的过载来排序原始数组.
如果您需要除标准排序规则之外的任何特殊排序规则,我担心您必须使用自动装箱.除此之外,您必须将数组转换为Integer[]
,因为int[]
不是自动装箱.
如果你不是在谈论数组,而是关于集合 - 那么你别无选择 - 集合只能容纳对象.
因为您无法Comparator<T>
使用基本类型参数化- 或任何其他参数化类型.
是的,这非常令人讨厌......你不能创建一个List<int>
或者Map<String, boolean>
等等,并且你不能编写适用于对象类型和基元的泛型方法.您必须为8种基本类型中的每一种都有专用方法.但这就是我们自Java 1以来一直坚持的设计1.责备James Gosling ;-)
正如Bozho指出的那样,Arrays.sort(...)
提供了所需的所有排序方法.