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() کافی است.
