В java большую часть времени вы работаете со ссылками на объекты. В вашем случае это означает, что вы всегда работаете с одним и тем же массивом line
. Поэтому, когда вы вызываете line.clear
, вы очищаете массив, на который указывает эта ссылка, и это вызывает вашу проблему с пустыми массивами.
Вам необходимо каждый раз генерировать новые объекты вместо очистки списка.
private fun generateLineVerifiers() {
for (lineIndex in grid.gridState.indices) {
val line: ArrayList<Square> = ArrayList()
for (columnIndex in grid.gridState.indices)
line.add(grid.gridState[lineIndex][columnIndex])
println(line.size) // returns 9
verifiers.add(EnsembleVerifier(line))
}
}