Question

Java 5 ont autoboxing, pourquoi je ne peux pas utiliser pour des primitives de Comparator tri? Un int ne serait pas enveloppé dans un Integer?

Était-ce utile?

La solution

Arrays.sort(..) ont surcharges dédiées pour le tri des tableaux primitifs.

Si vous avez besoin de règles de tri de spéciales en dehors du standard, je crains que vous auriez à utiliser autoboxing. En plus de cela, vous auriez à transformer votre tableau à Integer[], car int[] n'autoboxed.

Et si vous ne parlez pas de tableaux, mais sur les collections - alors vous avez pas d'autre choix -. Collections ne peuvent contenir que des objets

Autres conseils

Parce que vous ne pouvez pas paramétrer un Comparator<T> - ou tout autre type paramétré -. Avec un type primitif

Oui, c'est massivement ennuyeux ... vous ne pouvez pas faire un List<int> ou un Map<String, boolean> etc, et vous ne pouvez pas écrire des méthodes génériques travail pour les deux types d'objets et primitives. Vous devez disposer de méthodes dédiées pour chacun des 8 types primitifs. Mais c'est la conception que nous avons été coincés avec Java depuis 1. Blame James Gosling; -)

Comme Bozho souligne, Arrays.sort(...) fournit toutes les méthodes de tri dont vous avez besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top