2017-08-13 45 views
5

Tôi đang cố khởi tạo một danh sách có kích thước trong hàm tạo. Tuy nhiên, kích thước của danh sách của tôi là 0.Initialise ArrayList <ArrayList <Int>> với kích thước bằng kotlin

val seqList = ArrayList<ArrayList<Int>>(N) // This has the Problem 
val queries = ArrayList<Query>(Q) // This works like a charm 

Tôi có cả NQ bộ như không đóng góp phi từ người sử dụng cho phép nói N = 100Q = 100

Trong khi gỡ lỗi mã của tôi Tôi phát hiện ra rằng, queries.size() = 100 nhưng seqList.size() = 0

Giả định của tôi không chính xác, rằng seqList cũng phải được khởi tạo với các đối tượng N ArrayList<Int>.

+2

Bạn có chắc chắn rằng query.size() không phải là số không? Constructor đó thiết lập dung lượng chứ không phải kích thước. –

+0

Tôi đã đặt điểm ngắt tại điểm sai, bạn nói đúng. Hàm tạo không đặt kích thước, nhưng dung lượng :) –

Trả lời

5

Giả sử bạn không đúng, tôi sợ. Phần trích dẫn từ documentation của ArrayList:

Cung cấp thực hiện MutableList, trong đó sử dụng một mảng thay đổi kích thước như lưu trữ sự ủng hộ của mình.

Triển khai này không cung cấp cách quản lý dung lượng, vì sao lưu mảng JS có thể tự định lại được. Không có lợi thế về tốc độ để phân bổ trước kích thước mảng trong JavaScript, do đó việc triển khai này thực hiện không bao gồm bất kỳ khái niệm công suất và "tăng trưởng tăng trưởng" nào.

Các nhà xây dựng đặc biệt:

ArrayList(capacity: Int = 0) 

Tạo một ArrayList rỗng.

Một trốngArrayList được tạo ra, do đó cung cấp 100 như một cuộc tranh cãi sẽ không tạo ra các yếu tố bên trong danh sách.

Các vấn đề liên quan