Nếu bạn muốn làm một cái gì đó giống như
một (5) = // kết quả của một số tính toán
thì bạn sẽ cần sử dụng thứ gì đó từ phân cấp bộ sưu tập có thể thay đổi. Tôi muốn đề xuất ArrayBuffer
.
scala> import scala.collection.mutable.ArrayBuffer
import scala.collection.mutable.ArrayBuffer
scala> val a = ArrayBuffer.fill(3,3)(0)
a: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 0, 0))
scala> a(2)(1) = 4
scala> a(0) = ArrayBuffer(1,2,3)
scala> a
res2: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]] = ArrayBuffer(ArrayBuffer(1, 2, 3), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 4, 0))
Lưu ý rằng fill
cho phép bạn tự động tạo và khởi tạo cấu trúc 5D. Cũng lưu ý rằng bạn có thể mở rộng độ dài này, nhưng nó sẽ không mở rộng toàn bộ cấu trúc đa chiều, chỉ là cấu trúc mà bạn thêm vào. Vì vậy, ví dụ:
scala> a(2) += 7 // Add one element to the end of the array
res3: scala.collection.mutable.ArrayBuffer[Int] = ArrayBuffer(0, 4, 0, 7)
scala> a
res4: scala.collection.mutable.ArrayBuffer[scala.collection.mutable.ArrayBuffer[Int]]
= ArrayBuffer(ArrayBuffer(1, 2, 3), ArrayBuffer(0, 0, 0), ArrayBuffer(0, 4, 0, 7))
cảm ơn bạn rất nhiều. – evildead
Tôi nhận xét nó ở đây một lần nữa, như tôi thấy bây giờ vấn đề của tôi đã được sử dụng 2,7,7 từ phân phối của tôi. Tôi đã tự hỏi tại sao tất cả những điều tôi phát hiện ra ở đó không làm việc cho tôi. Bây giờ với 2,8 tất cả các công trình tốt. Tôi đã thử nghiệm câu trả lời của bạn và evrything hoạt động tốt. Chính xác những gì tôi cần. Cảm ơn một lần nữa – evildead