List
là giao diện chứ không phải lớp để không thể khởi tạo. ArrayList
rất có thể những gì bạn đang sau:
ArrayList<Integer> list = new ArrayList<Integer>();
Một giao diện trong Java cơ bản định nghĩa một kế hoạch chi tiết cho các lớp - một lớp học thực hiện một giao diện phải cung cấp triển khai các phương pháp danh sách định nghĩa. Nhưng việc thực hiện thực tế là hoàn toàn lên đến lớp thực hiện, ArrayList
trong trường hợp này.
JDK cũng cung cấp LinkedList
- một triển khai thay thế lại phù hợp với giao diện danh sách.Nó hoạt động rất khác với ArrayList
bên dưới và như vậy nó có xu hướng hiệu quả hơn khi thêm/xóa các mục một nửa thông qua danh sách, nhưng đối với đại đa số trường hợp sử dụng nó kém hiệu quả hơn. Và tất nhiên nếu bạn muốn xác định thực hiện của riêng bạn, nó hoàn toàn có thể!
Tóm lại, bạn không thể tạo danh sách vì nó là giao diện không chứa mã cụ thể - đó là công việc của các lớp thực hiện danh sách đó, trong đó ArrayList
được sử dụng nhiều nhất (và có lý do chính xác!)
Điều đáng lưu ý là trong C# a List
là một lớp, không phải là giao diện - đó là IList
. Nguyên tắc tương tự cũng được áp dụng, chỉ với các tên khác nhau.
Đây là cách để thực hiện. – Doug
+1 để có ngón tay kích hoạt nhanh nhất :-) – Kal