listIterator()
متد listIterator() برای ساختن «لیست ایتریتور (ListIterator)» استفاده می شود. «ایتراتور (Iterator)» یعنی ابزار پیمایش. اما «لیست ایتریتور» جلو و عقب می رود. مثل ورق زدن دفتر، رفتن به صفحه قبل هم ممکن است.
تفاوت ListIterator با Iterator
ایتراتور معمولی فقط جلو می رود. اما ListIterator می تواند با hasPrevious() و previous() به عقب هم برگردد. بنابراین برای پیمایش دوطرفه خیلی مناسب است.
مثال اجراشدنی
در این مثال، لیست را اول به جلو، سپس به عقب پیمایش می کنیم.
import java.util.LinkedList;
import java.util.ListIterator;
public class Main {
public static void main(String[] args) {
LinkedList<String> cars = new LinkedList<String>();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
ListIterator<String> it = cars.listIterator();
while (it.hasNext()) {
System.out.println(it.next());
}
System.out.println("---");
while (it.hasPrevious()) {
System.out.println(it.previous());
}
}
}
گام های عملی
- یک
LinkedListبساز و چند آیتم اضافه کن. - یک
ListIteratorباlistIterator()بگیر. - با
hasNext()وnext()جلو برو. - بعد با
hasPrevious()وprevious()برگرد.
نکته: «لیست ایتریتور» موقع پیمایش می تواند مکان فعلی را نگه دارد. بنابراین برگشت دقیق انجام می شود.
هشدار: هنگام تغییر هم زمان لیست با حلقه دقت کن. بهتر است از متدهای خود ListIterator برای افزودن/حذف استفاده شود.
پیوندهای مرتبط
iterator() برای پیمایش رو به جلو.
لیست ایتریتور در این صفحه توضیح داده شده است.
lastIndexOf() برای یافتن آخرین اندیس مقدار.
W3Schools: LinkedList listIterator() مرجع همین متد.
W3Schools: Java Iterator Tutorial آموزش کار با ایتراتورها.
جمع بندی سریع
listIterator()پیمایش دوطرفه می دهد.- با
previous()می توانی عقب بروی. - برای تغییر، از خود
ListIteratorکمک بگیر. - برای جلو فقط، iterator() کافی است.