ciao!
io ho una lista di questi oggetti:
codice:import org.dizitart.no2.IndexType; import org.dizitart.no2.objects.Id; import org.dizitart.no2.objects.Index; import org.dizitart.no2.objects.Indices; import java.io.Serializable; import java.util.Date; @Indices(value = { @Index(value = "gruppo", type = IndexType.NonUnique), @Index(value = "titolo", type = IndexType.Unique) }) public class Nota implements Serializable { @Id private long notaId; private String gruppo; private String titolo; private String testo; private Date data; public long getNotaId() { return notaId; } public void setNotaId(long notaId) { this.notaId = notaId; } public String getTitolo() { return titolo; } public void setTitolo(String titolo) { this.titolo = titolo; } public String getTesto() { return testo; } public void setTesto(String testo) { this.testo = testo; } public Date getData() { return data; } public void setData(Date data) { this.data = data; } public String getGruppo() { return gruppo; } public void setGruppo(String gruppo) { this.gruppo = gruppo; } }
la lista può avere lo stesso gruppo ripetuto più volte.
io avrei la necessità di iterare su questa lista prendendo i valori univoci di gruppo.
ho fatto un pò di tentativi, di cui questo è l'ultimo:
codice:@FXML public void initialize() { List<Nota> list = new ArrayList<>(db.getGruppi().toList()); list.stream().filter(distinctByKey(n -> n.getGruppo())).collect(Collectors.toList()); for (Nota n : list) { System.out.println(n.getGruppo()); } } public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> map = new ConcurrentHashMap<>(); return t -> map.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null; }
ma compaiono i valori doppi.
come dovrei fare??

Rispondi quotando