Domanda

Come Java 5 hanno autoboxing, perché non posso usare comparatore per le primitive di ordinamento? Un int non sarebbe stato avvolto in un Integer?

È stato utile?

Soluzione

Arrays.sort(..) hanno sovraccarichi dedicati per l'ordinamento array primitivi.

Se avete bisogno di tutte le regole di smistamento speciali oltre a quelli standard, temo che avrei dovuto usare autoboxing. In aggiunta a ciò, si avrebbe per trasformare l'array a Integer[], perché non è int[] autoboxed.

E se non si parla di array, ma sulle collezioni - allora non avete scelta -. Collezioni possono contenere solo gli oggetti

Altri suggerimenti

Poiché non è possibile parametrizzare un Comparator<T> - o qualsiasi altro tipo parametrizzato -. Con un tipo primitivo

Sì, questo è massicciamente fastidioso ... non è possibile fare una List<int> o un Map<String, boolean> ecc, e non è possibile scrivere metodi generici che il lavoro per entrambi i tipi di oggetti e primitive. Bisogna avere metodi dedicati per ciascuno degli 8 tipi primitivi. Ma questo è il disegno che siamo stati bloccati con Java dal 1. Blame James Gosling; -)

Come Bozho sottolinea, Arrays.sort(...) fornisce tutti i metodi di ordinamento necessari.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top