I have written a function that returns me the duplicates of a list:
static List<SomeClass> findDuplicateElements(List<SomeClass> myObjects) {
List<SomeClass> duplicates = myObjects
.groupBy { it.someAttribute }
.findAll { it.value.size() > 1 }
.collect { it.value }
.flatten()
assert duplicates.size() != 1
duplicates
}
The list cannot have the size 1 because if no duplicates are found it must be empty else if there are duplicates it must me at least 2 elements.
Without that check I would do it this way without having to create any new variables:
static List<SomeClass> findDuplicateElements(List<SomeClass> myObjects) {
myObjects
.groupBy { it.someAttribute }
.findAll { it.value.size() > 1 }
.collect { it.value }
.flatten()
}
When using assert, is there any way to avoid saving the result in the duplicates
variable and returning it at the end?