collections - sinonimos - Opuesto de intersección en maravillosas colecciones.
sinonimo derecha izquierda (5)
¿Podría ser esto?
def leftCollection = [1,2,3,4,5]
def rightCollection = [2,3,4]
def opposite = leftCollection-rightCollection
println opposite
Huellas dactilares
[1,5]
¿Cuál sería el opuesto de intersectarse en colecciones de groovy?
No estoy seguro de lo que quiere decir con "opuesto a la unión", pero supongo que se refiere a la diferencia simétrica (AKA diferencia establecida o disyunción). El resultado de esta operación se muestra en rojo a continuación.
La forma más fácil de realizar esta operación en dos colecciones Java / Groovy es usar el método de disjunction provisto por las colecciones comunes de Apache.
Probablemente quieras combinar las respuestas de @Andre y @denis
Creo que lo que quieres es la unión y luego restar la intersección de esta
def a = [1,2,3,4,5]
def b = [2,3,4]
assert [1,5] == ( a + b ) - a.intersect( b )
La solución dada por Denis dependería de si lo haces.
def opposite = leftCollection-rightCollection // [1,5]
o
def opposite = rightCollection-leftCollection // []
que no creo que quisieras
usar intersección para intersecciones
assert [4,5] == [1,2,3,4,5].intersect([4,5,6,7,8])
uso + para sindicatos:
assert [1,2,3,4,5] == [1,2,3] + [4,5]
ver http://groovy.codehaus.org/groovy-jdk/java/util/Collection.html
(a-b)+(b-a)
// (a-b) return [1,5]
//(b-a) return []
// TOTAL = [1,5]+[]
esto es cuando tenemos: a=[1,2,3,4,5],b=[2,3,4,5]
OOP:
java.util.List.metaClass.oppIntersect={b->
return ((delegate-b)+(b-delegate))
}
entonces
a.oppIntersect(b)
¡FIN!