Sự khác biệt giữa Giao diện lặp và Giao diện liệt kê 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: 9 Có Thể 2024
Anonim
Sự khác biệt giữa Giao diện lặp và Giao diện liệt kê trong Java - Công Nghệ
Sự khác biệt giữa Giao diện lặp và Giao diện liệt kê trong Java - Công Nghệ

NộI Dung


Ba con trỏ được sử dụng để truy cập các phần tử từ bất kỳ bộ sưu tập nào từng cái một Bảng liệt kê, Iterator và ListIterator. Mặc dù, Iterator và Enumerator có nghĩa là để thực hiện cùng một công việc. Tuy nhiên, chúng khác biệt với nhau theo nghĩa là Enumutions có quyền truy cập chỉ đọc vào các thành phần trong bộ sưu tập. Mặt khác, Iterator có thể đọc cũng như loại bỏ các yếu tố khỏi bộ sưu tập. Sự khác biệt quan trọng giữa Iterator và Enumutions là Bảng liệt kê có thể được áp dụng trên các lớp sưu tập, nó chỉ được áp dụng trên các lớp kế thừa. Mặt khác, Lặp lại do đó được áp dụng cho các lớp bộ sưu tập, do đó, nó được gọi là một con trỏ phổ quát. Chúng ta hãy tìm hiểu thêm một số khác biệt giữa Iterator và Enumutions 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ánhLặp lại Bảng liệt kê
Căn bảnIterator là một con trỏ phổ quát vì nó có thể áp dụng cho tất cả các lớp bộ sưu tập.Bảng liệt kê không phải là một con trỏ phổ quát vì nó chỉ áp dụng cho các lớp kế thừa.
Truy cậpSử dụng Iterator bạn có thể đọc và loại bỏ các yếu tố trong bộ sưu tập.Sử dụng phép liệt kê, bạn chỉ có thể đọc các phần tử trong bộ sưu tập.
Phương phápboolean hasnext ();
đối tượng công cộng next ();
công khai void remove ();
boolean hasMoreElements ();
đối tượng công cộng nextEuity ();
Giới hạnIterator là một con trỏ truy cập chuyển tiếp đơn hướng.
Iterator không thể thay thế bất kỳ phần tử nào trong bộ sưu tập.
Iterator không thể thêm bất kỳ phần tử mới nào trong bộ sưu tập.
Bảng liệt kê là con trỏ truy cập chuyển tiếp đơn hướng.
Liệt kê chỉ hỗ trợ các lớp kế thừa.
Bảng liệt kê chỉ có quyền truy cập chỉ đọc vào các thành phần trong bộ sưu tập.
Vượt quaĐể khắc phục những hạn chế của Iterator, bạn phải chọn ListIterator.Để khắc phục những hạn chế của Bảng liệt kê, bạn phải chọn Iterator.


Định nghĩa giao diện lặp

Lặp lại là một giao diện trong khung bộ sưu tập. Vì Iterator có thể áp dụng cho tất cả các lớp bộ sưu tập, nó được gọi là một con trỏ phổ quát. Nó là con trỏ được sử dụng để truy cập từng phần tử trong bộ sưu tập. Sử dụng Iterator, bạn có thể truy xuất các phần tử từ bộ sưu tập và nếu bạn muốn, bạn cũng có thể xóa các phần tử khỏi bộ sưu tập. Đối tượng của Iterator có thể được tạo như được đưa ra dưới đây.

Trình lặp itr = Collc.iterator ();

Biến là một đối tượng của Iterator. Collc là bất kỳ đối tượng bộ sưu tập nào sẽ được chu kỳ hoặc lặp đi lặp lại bằng cách sử dụng đối tượng (itr) của Iterator. Các trình vòng lặp () là phương thức được sử dụng để tạo một đối tượng lặp. Có ba phương thức trong Iterator như dưới đây.

boolean hasnext (); Đối tượng công cộng next (); công khai void remove ();

Phương pháp đầu tiên nội dung () kiểm tra xem bộ sưu tập có bất kỳ yếu tố nào trong đó hay không. Nếu bộ sưu tập có các phần tử, nó sẽ trả về true, phần khác sẽ trả về false. Phương pháp thứ hai kế tiếp() được sử dụng để lấy phần tử tiếp theo trong bộ sưu tập. Phương pháp thứ ba tẩy() được sử dụng để xóa các yếu tố khỏi bộ sưu tập.

Iterator chỉ có thể di chuyển trong một bộ sưu tập theo hướng thuận, nó có thể di chuyển trở lại trong khi di chuyển. Iterator có thể xóa phần tử khỏi bộ sưu tập nhưng không có khả năng thay thế bất kỳ phần tử hiện có nào bằng phần tử mới, nó không thể thêm bất kỳ phần tử mới nào vào bộ sưu tập. Để khắc phục những hạn chế này, bạn có thể vào giao diện ListIterator.

Định nghĩa giao diện liệt kê

Bảng liệt kê là giao diện áp dụng cho di sản các lớp và nó không thể được áp dụng cho bất kỳ lớp bộ sưu tập nào. Do đó, nó không phải là một con trỏ phổ quát. Phép liệt kê lấy phần tử (đối tượng) từ bộ sưu tập từng cái một. Đối tượng liệt kê có quyền truy cập chỉ đọc vào các thành phần của bộ sưu tập. Đối tượng liệt kê không thể thay đổi bất kỳ yếu tố nào từ bộ sưu tập. Hãy cho chúng tôi xem làm thế nào để tạo đối tượng liệt kê, có một cái nhìn.

Bảng liệt kê er = Vect.elements ();

Biến er là một đối tượng của liệt kê. Các Vect là đối tượng của lớp vectơ phải đi qua đối tượng (er) của liệt kê. Phương pháp thành phần() được sử dụng để tạo một đối tượng liệt kê. Chỉ có hai phương thức trong giao diện liệt kê như dưới đây.

boolean hasMoreElements (); công khai nextEuity ();

Phương pháp đầu tiên hasMoreElements () được sử dụng để kiểm tra trạng thái của bộ sưu tập xem nó có các phần tử trong đó hay không. Nếu bộ sưu tập có các phần tử, phương thức hasMoreElements () trả về true khác trả về false. Phương pháp thứ hai nextEuity () được sử dụng để truy xuất từng phần tử từ bộ sưu tập. Khi duyệt ngang hoàn thành, phương thức nextEuity () sẽ ném NoSuchEuityException. Đối tượng liệt kê chỉ đi theo hướng thuận. Nó không thể thêm hoặc xóa hoặc thay thế bất kỳ yếu tố nào trong bộ sưu tập. Để khắc phục những hạn chế này của Bảng liệt kê, bạn phải chọn Iterator.

  1. Sự khác biệt chính giữa Iterator và Enumutions là Iterator là một con trỏ phổ quát, có thể được sử dụng để lặp lại bất kỳ đối tượng bộ sưu tập nào. Mặt khác, phép liệt kê chỉ được sử dụng để truyền tải đối tượng của lớp kế thừa.
  2. Đối tượng liệt kê chỉ có quyền truy cập chỉ đọc vào các thành phần trong bộ sưu tập. Tuy nhiên, đối tượng của Iterator có thể đọc và xóa các phần tử khỏi bộ sưu tập.
  3. Có hai phương thức của trình lặp một để kiểm tra trạng thái của bộ sưu tập và một để lấy các phần tử từ bộ sưu tập. Ngoài các phương thức liệt kê, Iterator còn có một phương thức nữa để loại bỏ các phần tử khỏi bộ sưu tập.
  4. Hạn chế của liệt kê là con trỏ đơn hướng về phía trước, nó có quyền truy cập chỉ đọc và có thể được áp dụng cho các lớp bộ sưu tập. Mặt khác, Iterator không thể thay thế hoặc thêm bất kỳ phần tử mới nào trong bộ sưu tập và giống như liệt kê, nó cũng chuyển tiếp con trỏ đơn hướng.
  5. Giới hạn liệt kê được giải quyết bằng Iterator và các giới hạn của Iterator được giải quyết bằng ListIterator.

Phần kết luận:

Ngày nay, con trỏ Iterator và ListItertaor được sử dụng vì chúng là con trỏ phổ quát và hiệu quả hơn nhiều so với liệt kê.