Iterator trong Java là gì và làm thế nào để sử dụng nó?



Trình lặp trong blog Java sẽ cung cấp cho bạn một giới thiệu thích hợp về trình lặp là gì và cách sử dụng chúng trong Java với một vài ví dụ

Nếu bạn đang làm việc trên một và nói rằng bạn muốn in một chuỗi, đó là nơi mà Iterator trong Java xuất hiện trong hình. Bằng cách này, bạn có thể nhận được chuỗi ngay cả khi không thêm câu lệnh in cho mỗi và mọi dòng. Vì vậy, hãy cùng tìm hiểu về Iterator trong .

Dưới đây là các chủ đề mà tôi sẽ đề cập trong mô-đun này:





Bắt đầu nào!

Trình lặp là gì?

Java chủ yếu hỗ trợ bốn con trỏ khác nhau. Chúng cụ thể là:



  • Sự liệt kê
  • Trình lặp lại
  • ListIterator
  • Bộ chia

Mỗi con trỏ Java này đều có một số ưu điểm và nhược điểm. Chúng tôi sẽ tập trung vào Iterator trong bài viết này.

cách triển khai danh sách liên kết trong c

Bây giờ, trình lặp trong Java là gì?

Trình lặp lại là một giao diện thuộc về một khung tập hợp. Nó cho phép bạn duyệt qua bộ sưu tập, truy cập phần tử dữ liệu và xóa các phần tử dữ liệu của bộ sưu tập.



Nó cũng được coi là một trình lặp phổ quát vì bạn có thể áp dụng nó cho bất kỳ vật. Bằng cách sử dụng một Iterator, bạn có thể thực hiện cả thao tác đọc và loại bỏ. Đây là phiên bản cải tiến của Sự liệt kê với các chức năng bổ sung của khả năng loại bỏ của một phần tử.

Phương pháp lặp lại Java

Trình lặp Java có tổng cộng 4 phương thức. Hãy hiểu chúng một cách chi tiết.

cách quét ký tự trong java
Phương phápSự miêu tả
forEachRemaining (Tiêu thụ)Nó thực hiện các hành động trên từng phần tử cho đến khi và trừ khi tất cả các phần tử đã được xử lý. Cũng cho đến khi một ngoại lệ được ném ra bởi hành động.
hasNext ()Điều này trả lại giá trị true nếu gặp phải số lượng phần tử cao trong quá trình lặp.
kế tiếp()Điều này trả lại phần tử được chỉ định tiếp theo trong quá trình lặp.
tẩy()Phương pháp này rcảm xúc phần tử hiện tại. Ném Ngoại lệ nhà nước bất hợp pháp nếu một nỗ lực được thực hiện để gọi remove () không đứng trước một cuộc gọi tới next ().
boolean hasNext ()Điều này trả về true nếu lần lặp có nhiều phần tử hơn.

Thí dụ:

class Method {public static void main (String [] args) ArrayList list = new ArrayList () list.add ('E') list.add ('D') list.add ('U') list.add ('R ') list.add (' E ') list.add (' K ') list.add (' A ') // Lặp lại để duyệt qua danh sách Iterator iterator = list.iterator () System.out.println (' Danh sách các phần tử : ') while (iterator.hasNext ()) System.out.print (iterator.next () +' ') System.out.println ()}}

Đầu ra: EDUREKA

Chúng ta hãy xem xét ListIterator trong Java.

ListIterator trong Java

ListIterator trong Java là một Iterator cho phép người dùng xem qua Bộ sưu tập theo cả hai hướng. Nó chứa các phương pháp sau:

Phương phápPhương pháp & Mô tả
void add (Object obj) Chèn obj vào danh sách phía trước phần tử sẽ được trả về bởi lệnh gọi tiếp theo tới next ().
boolean hasNext () Trả về true nếu có phần tử tiếp theo. Nếu không, trả về false.
boolean hasPrevious () Trả về true nếu có phần tử trước đó. Nếu không, trả về false.
Đối tượng tiếp theo () Trả về phần tử tiếp theo. Một NoSuchElementException được ném nếu không có phần tử tiếp theo.
int nextIndex () Trả về chỉ mục của phần tử tiếp theo. Nếu không có phần tử tiếp theo, trả về kích thước của danh sách.
Đối tượng trước () Trả về phần tử trước đó. Một NoSuchElementException được ném nếu không có phần tử trước đó.
int beforeIndex () Trả về chỉ mục của phần tử trước đó. Nếu không có phần tử trước đó, trả về -1.
void remove () Xóa phần tử hiện tại khỏi danh sách. Một IllegalStateException được ném ra nếu remove () được gọi trước khi next () hoặc before () được gọi.
void set (Object obj) Gán obj cho phần tử hiện tại. Đây là phần tử được trả về lần cuối bởi một cuộc gọi tới next () hoặc trước ().

Thí dụ:

public class Lists {public static void main (String args []) {// Tạo danh sách mảng ArrayList al = new ArrayList () // thêm phần tử vào danh sách mảng al.add ('E') al.add ('D ') al.add (' U ') al.add (' R ') al.add (' E ') al.add (' K ') al.add (' A ') // Sử dụng trình vòng lặp để hiển thị nội dung của al System.out.print ('Nội dung gốc của al:') Iterator itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '' )} System.out.println () // Sửa đổi các đối tượng đang được lặp ListIterator litr = al.listIterator () while (litr.hasNext ()) {Object element = litr.next () litr.set (element + '+') } System.out.print ('Nội dung được sửa đổi của al:') itr = al.iterator () while (itr.hasNext ()) {Object element = itr.next () System.out.print (element + '') } System.out.println () // Bây giờ, hiển thị ngược danh sách System.out.print ('Danh sách được sửa đổi ngược lại:') while (litr.hasPrevious ()) {Object element = litr.previous () System.out. print (element + '')} System.out.println ()}}

Đầu ra:

Nguyênnội dung của al:E D U R E K A
Đã sửa đổinội dung của al:+D+U+R++ĐẾN+ A +
Đã sửa đổiliệt kê ngược:ĐẾN+ĐẾN++R+U+D+ VÀ +

Bây giờ, chúng ta hãy xem xét các ưu điểm và hạn chế của giao diện trình lặp này trong Java.

Ưu điểm của Iterator trong Java

Trình lặp lại trong Java có những ưu điểm sau.

  • Bạn có thể sử dụng các trình vòng lặp này cho bất kỳ lớp Bộ sưu tập nào.
  • Iterator trong Java hỗ trợ cả hai đọc cũng như tẩy các hoạt động.
  • Nếu bạn đang sử dụng vòng lặp for bạn không thể cập nhật (thêm / bớt) Bộ sưu tập trong khi với sự trợ giúp của trình lặp, bạn có thể dễ dàng cập nhật Bộ sưu tập.
  • Nó là một con trỏ chung cho API bộ sưu tập.
  • Tên phương pháp rất đơn giản và rất dễ sử dụng.

Hạn chế của Iterator trong Java

Trình lặp trong Java có những hạn chế sau:

  • Bạn chỉ có thể thực hiện lặp lại hướng về phía trước, đó là Trình lặp lại đơn hướng.
  • Việc thay thế và bổ sung một phần tử mới không được hỗ trợ bởi Iterator.
  • ListIterator là trình vòng lặp mạnh nhất nhưng nó chỉ áp dụng cho các lớp được triển khai danh sách. Vì vậy, nó không phải là một trình lặp phổ quát.
  • Khi bạn sử dụng Hoạt động CRUD, nó không hỗ trợ hoạt động tạo và cập nhật.
  • Khi bạn so sánh nó với Spliterator, nó không cho phép bạn lặp lại các phần tử song song. Điều này có nghĩa là nó chỉ hỗ trợ lặp lại tuần tự.
  • Nó không hỗ trợ hiệu suất tốt hơn để lặp lại một khối lượng lớn dữ liệu.

Đến phần cuối của bài viết này, chúng ta đã tìm hiểu về cách hoạt động của trình vòng lặp trong Java. Hy vọng bạn rõ ràng với tất cả những gì đã được chia sẻ với bạn trong hướng dẫn này.

php mysql_fetch_

Nếu bạn thấy bài viết này về “Iterator trong Java” có liên quan, hãy xem một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu.

Chúng tôi ở đây để giúp bạn từng bước trên hành trình của mình, ngoài ra, chúng tôi còn đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và các chuyên gia muốn trở thành một Nhà phát triển Java. Khóa học được thiết kế để cung cấp cho bạn khởi đầu về lập trình Java và đào tạo bạn về cả khái niệm Java cốt lõi và nâng cao cùng với các khung Java khác nhau như Hibernate & Spring.

Nếu bạn gặp bất kỳ câu hỏi nào, vui lòng đặt tất cả câu hỏi của bạn trong phần nhận xét của “Iterator trong Java” và nhóm của chúng tôi sẽ sẵn lòng trả lời.