Vâng tiền đề cơ bản là "sai" từ Java bao gồm các lớp từ điển từ trước giao diện tồn tại trong ngôn ngữ ...
bộ sưu tập cung cấp danh sách đó là hơi tương tự như mảng, nhưng họ cung cấp nhiều điều hơn mà không phải. Tôi cho rằng bạn vừa mới nói về Danh sách (và thậm chí là Đặt) và để lại Bản đồ ra khỏi nó.
Có, có thể nhận được cùng chức năng như Danh sách và Đặt bằng một mảng, tuy nhiên có rất nhiều công việc liên quan. Toàn bộ điểm của một thư viện là người dùng không phải "triển khai" các hoạt động phổ biến của riêng họ.
Khi bạn có một triển khai duy nhất mà mọi người sử dụng nó cũng dễ dàng hơn để biện minh cho các nguồn chi tiêu tối ưu hóa nó. Điều đó có nghĩa là khi các bộ sưu tập tiêu chuẩn được tăng tốc hoặc giảm dung lượng bộ nhớ, tất cả các ứng dụng sử dụng chúng đều được cải tiến miễn phí.
Một giao diện duy nhất cho mỗi điều cũng đơn giản hóa mọi nhà phát triển về đường cong học tập - không có nhiều cách khác nhau để làm điều tương tự.
Nếu bạn muốn có một mảng phát triển theo thời gian, có thể bạn sẽ không đặt mã tăng trưởng trên tất cả các lớp, mà thay vào đó sẽ viết một phương thức tiện ích để thực hiện điều đó. Tương tự để xóa và chèn vv ...
Ngoài ra, mảng không phù hợp để chèn/xóa, đặc biệt khi bạn mong đợi rằng thành viên .length được cho là phản ánh số lượng nội dung thực tế, vì vậy bạn sẽ chi tiêu lượng thời gian phát triển và thu hẹp mảng. Các mảng cũng không phù hợp với các Bộ như bạn sẽ phải lặp qua toàn bộ mảng mỗi lần bạn muốn thực hiện chèn để kiểm tra các bản sao. Điều đó sẽ giết bất kỳ hiệu quả nhận thức nào.
+1 Chắc chắn là một câu trả lời tốt hơn. Tôi đã xóa của tôi đó là vụng về. –
@Adeel: Tôi có thể cải thiện nó nhiều hơn nữa (các cuộc thảo luận về thời điểm sử dụng, Bộ sưu tập của Google, v.v.), nếu tôi không cố gắng sử dụng súng nhanh nhất ở phương Tây. :-P –