Tôi có một ArrayList
và tôi muốn sao chép chính xác. Tôi sử dụng các lớp tiện ích khi có thể với giả định rằng ai đó đã dành thời gian để làm cho nó đúng. Vì vậy, tự nhiên, tôi kết thúc với Collections
lớp có chứa một phương thức sao chép.
Giả sử tôi có những điều sau đây:
List<String> a = new ArrayList<String>();
a.add("a");
a.add("b");
a.add("c");
List<String> b = new ArrayList<String>(a.size());
Collections.copy(b,a);
Điều này thất bại bởi vì về cơ bản, nó nghĩ rằng b
không đủ lớn để giữ a
. Có tôi biết b
có kích thước 0, nhưng nó phải đủ lớn bây giờ phải không? Nếu tôi phải điền b
trước, sau đó Collections.copy()
trở thành một chức năng hoàn toàn vô dụng trong tâm trí của tôi. Vì vậy, ngoại trừ việc lập trình một chức năng sao chép (mà tôi sẽ làm bây giờ) có cách nào phù hợp để làm việc này không?