بررسی اینترفیس List
اینترفیس List از اینترفیس Collection ارثبری میکنه.
کلاس های
کلاس های ArrayList, Vector و LinkedList در جاوا اینترفیس List رو پیادهسازی میکنن و اکثر متدهای این کلاس ها، متد های بازنویسی شده ی اینترفیس List هستند؛ در مطالب بعد به نحوه ی کار با این کلاس ها در جاوا خواهیم پرداخت.
اینترفیس List علاوه بر متد های Collection که به ارث میبره، متد های اختصاصی خودش هم داره؛ در نمودار UML زیر متد های تعریف شده در کلاس List به همراه توضیحاتشون اورده شده است.
| <<interface>> | |
|---|---|
| java.util.List<E> | |
| +add(index: int, element: E): void | یک عنصر در index مورد نظر اضافه میکنه. |
| +addAll(index: int, c: Collection<? extends E> | تمام عناصر Collection رو از شماره index به بعد وارد List میکنه. |
| +get(index: int): E | عنصر موجود در index مورد نظر رو بر میگردونه. |
| +indexOf(o: Object): int | index اولین عنصر مطابق با آبجکت o رو بر میگردونه. |
| +lastIndexOf(o: Object): int | index آخرین عنصر مطابق با آبجکت o رو بر میگردونه. |
| +listIterator(): ListIterator | یک نمونه از ListIterator رو بر میگردونه؛ اینترفیس ListIterator از Iterator ارثبری می کنه. |
| +listIterator(index: int): ListIterator | یک نمونه از ListIterator رو بر میگردونه و شروع پیمایش توسط ListIterator از شماره index خواهد بود. |
| +remove(index: int): E | عنصر موجود در شماره index مورد نظر رو حذف کرده و بر میگردونه. |
| +subList(fromIndex: int, toIndex: int): List<E> | یک List جدید از fromIndex تا toIndex - 1 از عناصر List فعلی رو بر میگردونه؛ index آخرین عنصر (size - 1) است. |
| +set(index: int, e: E): E | عنصر e رو جایگزین عنصر موجود در index مورد نظر میکنه و عنصر قدیمی رو بر میگردونه. |
پیمایش در List با ListIterator
در مطلب Collection به Iterator پرداختیم، در این قسمت میخوایم به ListIterator بپردازیم.
اینترفیس ListIterator از Iterator ارثبری میکنه و باهاش میشه به پیمایش دوسویی در پیادهسازی های List پرداخت.
در اینترفیس ListIterator، علاوه بر متد های Iterator که ازش ارث بری میکنه، متد های جدیدی تعریف شده است.
در نمودار UML زیر متد های تعریف شده در ListIterator شرح داده شده است.
| <<interface>> | |
|---|---|
| java.util.ListIterator | |
| +add(e: E): void | یک عنصر رو به List اضافه میکنه؛ عنصر جدید به قبل از عنصر بعدی که با next صدا زده میشه اضافه میشه. |
| +hasPrevious(): boolean | اگه به اولین عنصر در لیست رسیده باشیم مقدار false رو بر میگردونه. |
| +nextIndex(): int | شماره index عنصر بعدی رو بر میگردونه. |
| +previous(): E | عنصر قبلی رو بر می گردونه. |
| +previousIndex(): int | index عنصر قبلی رو بر میگردونه. |
در مثال زیر میخوایم با ListIterator به پیمایش در LinkedList بپردازیم.
List<String> colors = new ArrayList<>();
colors.add("Blue");
colors.add("Pink");
colors.add("Purple");
colors.addFirst("Cyan");
colors.add(1, "Red");
colors.removeLast();
colors.addLast("Yellow");
ListIterator<String> listIterator = colors.listIterator();
System.out.println("Display color forward: ");
while(listIterator.hasNext())
System.out.print(listIterator.next());
System.out.println();
System.out.println("Display color backward: ");
while(listIterator.hasPrevious())
System.out.print(listIterator.previous());
خلاصه
- کلاس های ArrayList, Vector و LinkedList اینترفیس List رو پیاده سازی میکنن.
- اینترفیس ListIterator از اینترفیس Iterator ارث بری میکنه و باهاش میتونیم به صورت دوسویی به پیمایش در پیادهسازی های List بپردازیم.
بازخورد و دیدگاه ها
اولین نفری باشید که در این صفحه نظر میدهید