Questa potrebbe essere una domanda già posta ma non trovo la risposta di cui ho bisogno.Java 8: Come confrontare tutti gli elementi di un Set
Ho una serie di oggetti, come
public class MyObject {
private LocalDate dateBeginning;
private LocalDate dateEnd;
public boolean overlap(MyObject otherDate) { /*code to check overlapping*/ }
}
ho bisogno di controllare se il set contiene agli elementi che si sovrappongono l'un l'altro. In "old-java" passerei due volte il set e controllerò tutte le combinazioni esistenti e poi interromperò o restituirò quando lo trovo.
Come possiamo farlo con stream e lambda in Java 8?
Ho già provato con reduction()
e filter()
ma nessuno di loro sembra funzionare
.filter((obj1, obj2) -> { if (obj1.overlap(obj2)) return true;}) //doesn't work
Non è una risposta alla tua domanda, tuttavia, forse utile [RangeSet di Guava potrebbe essere quello che stai cercando] (https://google.github.io/guava/releases/19.0 /api/docs/index.html?com/google/common/collect/RangeSet.html) – ooxi
@Eran Ho letto che come OP che desidera un insieme di tutti gli elementi che si sovrappongono a qualsiasi altro elemento nel set. – Cubic
Sì @Eran Vorrei un ritorno booleano.Ma per ottenere una lista con gli elementi sovrapposti sarebbe anche ok – iberbeu