English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، سنتعلم كيفية استخدام واجهة Java ListIterator باستخدام أمثلة.
يقدم واجهة ListIterator في إطار جافا كوليكت الميزة لاستقبال عناصر القائمة.
إنها ثنائية الاتجاه. هذا يعني أنها تسمح لنا بالت迭代 عناصر القائمة في كلا الاتجاهين.
إنها تنقلُ عن واجهة Iterator.
يقدم واجهة List يقدم طريقة ListIterator()، التي تعود إلى مثيل واجهة ListIterator.
يقدم واجهة ListIterator طرقًا يمكن استخدامها لتنفيذ عمليات مختلفة على عناصر القائمة.
hasNext() - إذا كان هناك عنصر في القائمة، يعود إلى true
next() - يعود إلى العنصر التالي في القائمة
nextIndex() - عودة索引 العنصر الذي سيتم عودته من طريقة next()
previous() - عودة العنصر السابق في القائمة
previousIndex()- عودة索引 العنصر الذي سيتم عودته من طريقة previous()
remove()- حذف العنصر الذي يعود منه next() أو previous()
set() - استبدال العنصر الذي يعود منه next() أو previous() بعنصر معين
في المثال التالي، قمنا بتنفيذ طرق next() و nextIndex() و hasNext() من واجهة ListIterator في قائمة الأعداد.
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { //创建一个ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); //创建ListIterator的实例 ListIterator<Integer> iterate = numbers.listIterator(); //استخدام طريقة next() int number1 = iterate.next(); System.out.println("العنصر التالي: " + number1); //استخدام طريقة nextIndex() int index1 = iterate.nextIndex(); System.out.println("موقع العنصر التالي: " + index1); //استخدام طريقة hasNext() System.out.println("هل هناك عنصر التالي؟ " + iterate.hasNext()); } }
نتائج الإخراج
ArrayList: [1, 3, 2] العنصر التالي: 1 موقع العنصر التالي: 1 هل هناك عنصر التالي؟ true
في المثال التالي، قمنا بتنفيذ طريقة previous() و previousIndex() من واجهة ListIterator في قائمة الأعداد.
import java.util.ArrayList; import java.util.ListIterator; class Main { public static void main(String[] args) { //创建一个ArrayList ArrayList<Integer> numbers = new ArrayList<>(); numbers.add(1); numbers.add(3); numbers.add(2); System.out.println("ArrayList: " + numbers); //创建ListIterator的实例 ListIterator<Integer> iterate = numbers.listIterator(); iterate.next(); iterate.next(); //استخدامmethodprevious() int number1 = iterate.previous(); System.out.println("العنصر السابق: " + number1); //استخدامmethodpreviousIndex() int index1 = iterate.previousIndex(); System.out.println("موقع العنصر السابق: " + index1); } }
نتائج الإخراج
ArrayList: [1, 3, 2] العنصر السابق: 3 موقع العنصر السابق: 0
في المثال السابق، كانمثالالمنظورفيقبل1. لأنليس هنالكعنصرقبل1،سيقومmethodprevious()بإطلاقاستثناء.
ثم، استخدمناmethodnext()مرتين. الآن سيتكونمثالIteratorمن3إلى2.
لذلك، يعودmethodprevious() إلى3.