2013-02-20 40 views
5

Có bất kỳ sự khác biệt giữa hai dòng trong sauGán ArrayList vào danh sách

ArrayList<String> arrName = new ArrayList<String>(); 
List<String>  arrName = new ArrayList<String>(); 

Cám ơn Trả lời

+0

Tôi đã nhìn thấy cùng một câu hỏi (thậm chí cùng một văn bản) giữa ngày hôm qua và hôm nay (nhưng không thể tìm thấy). –

+0

Oh i C Cảm ơn anyway –

+0

@LuiggiMendoza. Ngay cả tôi. –

Trả lời

3

Hầu như luôn ưu tiên thứ hai so với phiên bản thứ nhất. Thứ hai có lợi thế là việc thực hiện List có thể thay đổi (thành ví dụ LinkedList) mà không ảnh hưởng đến phần còn lại của mã. Đây sẽ là khó khăn để làm với một ArrayList, không chỉ vì bạn sẽ cần phải thay đổi ArrayList đến LinkedList ở khắp mọi nơi, nhưng cũng bởi vì bạn có thể đã sử dụng ArrayList phương pháp cụ thể.

2

Cách tiếp cận thứ hai thường là một trong những ưu tiên vì nó ẩn đằng sau thực hiện một giao diện. Điều này có nghĩa là sau này, nếu các yêu cầu sẽ thay đổi và sẽ yêu cầu thực hiện một giao diện List, bạn có thể thay đổi chỉ một dòng mã và mọi thứ khác sẽ vẫn hoạt động vì bạn đã mã hóa giao diện không tới một lớp .

2

Không có nhiều sự khác biệt cho mỗi gia nhập, nhưng List được sử dụng bất cứ khi nào có thể vì nó là một giao diện và bạn có thể thấy trong các thông số phương pháp thư viện tiêu chuẩn nói chung là List<K>, do đó bất kỳ thực hiện cụ thể được thông qua, như ArrayList hoặc LinkedList.

2

Cố gắng ẩn triển khai cụ thể phía sau Giao diện bất cứ khi nào có thể. see this

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