2013-01-20 34 views
10

Trong Java, tôi không hiểu bộ sưu tập nào so với 'cấu trúc dữ liệu'. Dường như với tôi rằng bộ sưu tập đề cập đến danh sách, bộ, bản đồ, hàng đợi và 'cấu trúc dữ liệu' đề cập đến cấu trúc dữ liệu được sử dụng để triển khai bộ sưu tập như mảng, danh sách được liên kết hoặc cây. Ví dụ ArrayList và LinkedList là cả hai bộ sưu tập, nhưng cấu trúc dữ liệu của chúng tương ứng là một mảng và một danh sách liên kết. Tôi có đúng không, hoặc tôi có nhầm lẫn điều khoản không?Java: Sự khác biệt giữa bộ sưu tập và 'Cấu trúc dữ liệu'

+0

Mặc dù câu hỏi đơn giản, nhưng vui vì bạn đã hỏi. Nhiều người không hỏi và vẫn còn nghi ngờ mãi mãi :-) – CuriousMind

Trả lời

6

Cấu trúc dữ liệu là cách dữ liệu được thể hiện bên trong bộ nhớ trong bộ nhớ. Một bộ sưu tập là cách nó có thể được truy cập. Tôi nhấn mạnh vào từ "có thể".

Nếu bạn lưu trữ dữ liệu trong LinkedList và sắp xếp dữ liệu, hiệu suất sẽ giảm. Các thuật toán tương tự nếu bạn sử dụng một ArrayList hiệu suất sẽ tăng cường. Chỉ bằng cách thay đổi cách biểu diễn của nó trong bộ nhớ sẽ giúp các yếu tố khác nhau.

Bạn "có thể" truy cập bằng cách sử dụng biểu diễn bộ sưu tập, bạn "có thể" cũng sử dụng "chỉ mục" để truy cập dữ liệu. Bạn "có thể" cũng đi getFirst, getNext, getPrev.

Sự nhầm lẫn của bạn giữa bộ nhớ trong và truy cập bộ nhớ. Tách biệt 2.

11

Cấu trúc dữ liệu là một thuật ngữ chung cho một đối tượng đại diện cho một số loại dữ liệu, do đó danh sách, mảng được liên kết, vv là tất cả các cấu trúc dữ liệu. Một bộ sưu tập theo nghĩa Java đề cập đến bất kỳ lớp nào thực hiện giao diện Collection. Một bộ sưu tập theo nghĩa chung là chỉ một nhóm các đối tượng.

+0

Liệu bộ sưu tập hạn có ý nghĩa trong các ngôn ngữ lập trình khác, hoặc nó thực sự là một thuật ngữ mà Java sử dụng? – user1888243

+1

Đó là một thuật ngữ chung chung. Nhưng khi được sử dụng trong ngữ cảnh Java, nó thường có nghĩa là các lớp sưu tập java. –

+1

+1 Và ngoài ra, theo định nghĩa đó, việc triển khai giao diện 'Bộ sưu tập' là một cấu trúc dữ liệu cung cấp các phương thức để xử lý một nhóm đối tượng. –

1

Cấu trúc dữ liệu có khái niệm về một số loại lược đồ, ví dụ: một đại diện của một ngôi nhà sẽ liệt kê những thứ như cảnh quay vuông, phòng ngủ, v.v. Đó là điều thường có nghĩa là: cấu trúc của tên miền được biểu diễn như dữ liệu như thế nào?

Bộ sưu tập là, như Jeff nói, chỉ là một tập hợp các đối tượng. Bộ sưu tập có cấu trúc nhưng cấu trúc của chúng chỉ là tổ chức, ví dụ: một cây, hoặc một danh sách hoặc một LinkedList.

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