Sto scrivendo alcuni Comparatori personalizzati e mi piacerebbe che spingessero gli oggetti nulli in fondo alla lista, indipendentemente dal fatto che io stia salendo o scendendo. Qual è una buona strategia o modello per avvicinarsi a questo?Un modo semplice ed intuitivo di ordinare i null in basso, indipendentemente?
Lì per lì:
- Basta scrivere ascendenti e decrescente comparatori separati, la condivisione di codice ove possibile
- delegato la gestione null per un'altra classe , sia lanciando una NPE o chiamando esplicitamente
- Includere un flag crescente e inserire la logica condizionale per navigare attorno ai valori nulli
- Wrap comparatori regolari in una classe null-movimentazione
Eventuali altre strategie? Mi piacerebbe sapere di eventuali esperienze con approcci diversi e qualsiasi insidia per le varie strategie.
Sono d'accordo con tutte le tue risposte tranne che sulla negazione del risultato di un confronto; Sarei abbastanza infelice se scoprissi che un comparatore stava implementando il confronto tra interi utilizzando la sottrazione, dal momento che quel metodo ha così tante insidie. – jprete
@jprete: Penso che tu mi abbia frainteso. Io modifico –
Accetto questa risposta a causa del riferimento alla classe Ordini di Google Collections: il codice comprovato esistente è la soluzione migliore. Anche per l'avviso su Integer.MIN_VALUE. Ma apprezzo molto il codice di @ dfa, di seguito, e vorrei poter accettare entrambe le risposte. –