HashSet
не позволяет дублировать значения. Код, который вы создали, создает набор из одного списка элементов 1, 2 и 1. Если вы напечатаете studentArray
на консоли, вы увидите что-то вроде этого:
[[1, 2, 1]]
И это правильно, потому что тип построенной структуры - Set<List<Integer>>
. То, как вы используете set в этом случае, не позволит добавить еще один список [1,2,1]
.
Если вы хотите создать набор типа [1,2]
, тогда вы можете разыграть studentList.num as Set
.
def studentList = [[name:'test',grade:1,num:1],[name:'test1',grade:2,num:2],[name:'test',grade:1,num:1]]
def studentNums = studentList.num as Set
assert studentNums == [1,2] as Set