Collections.sort question

0

La mia domanda potrebbe essere correlata a questa domanda - Incapsulamento della struttura dei dati interni

Ho una classe LCTile.java che contiene una classe Coordinate.java. Coordinate.java che contiene latitudine e longitudine (essenzialmente un Point2D.java). Ora desidero ordinare le coordinate per latitudine o longitudine per le quali ho già sviluppato una classe CoordinateComparator. L'API Java richiede di passare l'Elenco da ordinare e il Comparatore i.e. Collections.sort (Elenco elenco, Comparatore comparatore). La mia domanda è la seguente: per ordinare le varie tessere per latitudine o longitudine, devo ottenere tutte le classi di coordinate in una lista dalla classe LCTile originale e poi passarle all'interfaccia Collections.sort e quindi ricondurle alla piastrella originale (s) dopo l'operazione di ordinamento è finita. L'incapsulamento della classe Coordinate all'interno della LCTile è assolutamente essenziale o può essere fatto in un modo diverso?

    
posta gansub 21.08.2015 - 12:54
fonte

1 risposta

2

Puoi creare un comparatore che confronta le coordinate della tessera. In java 8 c'è una funzione di supporto per questo:

Comparator<LCTile> cmp = Comparator.comparing(
         LCTile::getCoordinate,
         CoordinateComparator.instance);

Quindi puoi passare quello con l'elenco di tile a Collections.sort .

    
risposta data 21.08.2015 - 13:05
fonte

Leggi altre domande sui tag