Sự khác biệt giữa Danh sách và Bộ trong Java

Tác Giả: Laura McKinney
Ngày Sáng TạO: 2 Tháng Tư 2021
CậP NhậT Ngày Tháng: 14 Có Thể 2024
Anonim
Sự khác biệt giữa Danh sách và Bộ trong Java - Công Nghệ
Sự khác biệt giữa Danh sách và Bộ trong Java - Công Nghệ

NộI Dung


Giao diện List và Set mở rộng Collection. Cả hai đều duy trì bộ sưu tập các yếu tố hoặc đối tượng. Nhưng, sự khác biệt chính giúp phân biệt chúng với nhau là Danh sách là tập hợp các phần tử được sắp xếp, các phần tử được thêm hoặc xóa hoặc truy cập với sự trợ giúp của một biến chỉ mục. Mặt khác, Set là một tập hợp các đối tượng trong đó bộ sưu tập không cho phép các phần tử trùng lặp trong đó. Chúng ta hãy nghiên cứu thêm một số khác biệt giữa các giao diện List và Set với sự trợ giúp của biểu đồ so sánh được hiển thị bên dưới.

  1. Biểu đồ so sánh
  2. Định nghĩa
  3. Sự khác biệt chính
  4. Phần kết luận

Biểu đồ so sánh

Cơ sở để so sánhDanh sách Bộ
Căn bảnDanh sách duy trì chuỗi các yếu tố được lưu trữ trong một danh sách.Đặt không đặc biệt duy trì thứ tự chèn nhưng, Hashset được liên kết duy trì thứ tự chèn.
Sao chépDanh sách có thể có các yếu tố trùng lặp trong đó.Phương thức add () trả về false nếu bạn cố gắng chèn các phần tử trùng lặp.
Phương phápNgoài các phương thức được định nghĩa trong Bộ sưu tập, Danh sách xác định một số phương thức riêng của nó.Đặt không xác định bất kỳ phương pháp bổ sung.
Thực hiện Danh sách được triển khai bởi ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.Set được triển khai bởi Hashset, LinkedHashset, EnumSet, Treeset, CopyOnWriteArraySet.


Định nghĩa của danh sách

Giao diện danh sách mở rộng giao diện Collection. Danh sách là một tập hợp các phần tử hoặc đối tượng được sắp xếp. Không giống như Set, List có thể chứa các phần tử trùng lặp. Ngoài các phương thức được định nghĩa trong Danh sách bộ sưu tập, xác định một số phương thức của chính nó như phương thức get () và set () dựa trên chỉ mục. Các phương thức add () và remove () được kế thừa từ Bộ sưu tập thêm hoặc xóa phần tử đã chỉ định khỏi chỉ mục được chỉ định trong đối số phương thức. Danh sách là một loại mảng có kích thước tăng lên khi chúng ta thêm các phần tử vào danh sách.

Danh sách không định nghĩa bất kỳ phương thức nào để hoạt động trên phạm vi chỉ mục trong danh sách. Nó định nghĩa một phương thức danh sách con () trả về một danh sách con từ danh sách ban đầu của một phạm vi được chỉ định. Những thay đổi mà bạn thực hiện đối với danh sách phụ cũng xuất hiện trong danh sách ban đầu. Giao diện danh sách được triển khai bởi ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack.


Định nghĩa của tập hợp

Đặt giao diện mở rộng giao diện Bộ sưu tập. Set interface là một tập hợp hoặc một nhóm các đối tượng không có bất kỳ đối tượng trùng lặp nào trong đó. Điều đó có nghĩa là hai tham chiếu không thể tham chiếu một đối tượng hoặc một tham chiếu không thể tham chiếu đến hai đối tượng hoặc không thể có hai tham chiếu tham chiếu đến Null. Thứ tự hoặc trình tự của phần tử không quan trọng Set, nhưng không phải là nó cấm tập hợp được đặt hàng.

Đặt giao diện không xác định bất kỳ phương thức nào ngoài phương thức được xác định trong Bộ sưu tập. Thay vào đó, nó giới hạn các phương thức thu thập add () và addall () để thêm bất kỳ đối tượng trùng lặp nào trong một bộ sưu tập. Nếu bạn cố gắng thêm bất kỳ đối tượng trùng lặp nào trong một bộ sưu tập bằng phương thức add () của Collection, nó sẽ trả về false. Nếu không, nó trả về đúng. Giao diện thiết lập được triển khai bởi Hashset, LinkedHashset, EnumSet, Treeset, CopyOnWriteArraySet.

  1. Chuỗi các phần tử / đối tượng trong một bộ sưu tập được duy trì trong Danh sách trong khi đó, Set không duy trì thứ tự của các phần tử nhưng có một ngoại lệ LinkedHashset duy trì thứ tự chèn.
  2. Danh sách có thể có các phần tử trùng lặp vì nó xác định bất kỳ phần tử nào với chỉ mục của nó, nhưng Set không cho phép bất kỳ phần tử trùng lặp nào vì nó không có bất kỳ loại phần tử chỉ mục nào để xác định bất kỳ đối tượng nào trong bộ sưu tập.
  3. Danh sách tự xác định một số phương thức, ngoài các phương thức được xác định trong Bộ sưu tập. Mặt khác, Set không định nghĩa bất kỳ phương thức nào của riêng mình, nhưng nó giới hạn các phương thức của Bộ sưu tập để thêm bất kỳ phần tử trùng lặp nào.
  4. Danh sách được thực hiện bởi các giao diện ArrayList, LinkedList, CopyOnWriteArrayList, Vector, Stack. Mặt khác, Set được triển khai bởi các giao diện Hashset, LinkedHashset, EnumSet, TreeSet, CopyOnWriteArraySet.

Phần kết luận:

Việc sử dụng giao diện List và Set tùy thuộc vào yêu cầu. Nếu thứ tự của các đối tượng / thành phần là quan trọng, thì bạn phải sử dụng giao diện Danh sách. Nếu bạn không yêu cầu bất kỳ yếu tố trùng lặp nào trong bộ sưu tập của mình, thì bạn phải sử dụng Giao diện cài đặt