Conjunto ordenar por Instant

TOTOROCATBUS :

Tengo una aplicación Java Setque doy información a:

Set<myData> dataLocations = getData(location);

Me gustaría resolver esto Conjunto He probado un SortedSet y no podía conseguir que funcione, por lo que he intentado esto

dataLocations = dataLocations.stream().sorted(Comparator.comparing(myData -> myData.expDtTm)).collect(Collectors.toSet());

El único problema es que en la documentación de Java no garantiza retener cualquier pedido. Así que he intentado esto:

TreeSet<myData> sortedDataLocations = dataLocations.stream().sorted(Comparator.comparing(myData -> myData.expDtTm)).collect(Collectors.toCollection(TreeSet<myData>));

no hace falta decir que no funcionaba por lo que cualquiera que tenga alguna otra idea que sería muy apreciada.

Charles Dowbecki:

Puede utilizar TreeSety proporcionar un comparador

TreeSet<myData> sorted = new TreeSet<>(Comparator.comparing(MyData::expDtTm));
sorted.addAll(dataLocations);

O como se describe en Collectorla clase Javadocs crean su propio colector para TreeSet:

Collector<Widget, ?, TreeSet<Widget>> intoSet =
     Collector.of(
         TreeSet::new, 
         TreeSet::add,
         (left, right) -> { left.addAll(right); return left; }
     );

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=184788&siteId=1
Recomendado
Clasificación