I'm trying to append ArrayBuffer(s) in an ArrayBuffer of ArrayBuffer but the result seems weird to me.
def main(args: Array[String]) {
println(initArray(List(1,2,5,20)))
}
def initArray(numbers: List[Int]): Int = {
var combination = ArrayBuffer[Int]()
var combinations = ArrayBuffer[ArrayBuffer[Int]]()
var finishedCombinations = ArrayBuffer[ArrayBuffer[Int]]()
// Init
for (number <- numbers) {
combination.clear()
combination.append(number)
println("combination : "+combination)
combinations.insert(0,combination)
println("combinations : "+combinations)
}
combinations.size
}
I'm getting an ArrayBuffer of size 4 as expected but the content in unexpected :
Was expecting to get :
combinations : ArrayBuffer(ArrayBuffer(1), ArrayBuffer(2), ArrayBuffer(5), ArrayBuffer(20))
but i get :
combinations : ArrayBuffer(ArrayBuffer(20), ArrayBuffer(20), ArrayBuffer(20), ArrayBuffer(20))
This behaviour is unclear to me, can anyone help ?
Regards.