آموزش جامع Iterator و Iterable در جاوا
جلسات دوره
مهدی عباسی
مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و .... مشاهده رزومه
آموزش جامع Iterator و Iterable در جاوا
در این فصل میخواهیم کلاسها و اینترفیس های پر کاربرد پکیج java.util را بررسی کنیم. در گذشته با چند نمونه از کالکشن ها مانند ArrayList و HashMap کار کردیم در این جلسه و چند جلسه بعدی می خواهیم ساختار انواع کالکشن ها را دقیق تر بررسی کنیم.
در این جلسه میخواهیم اینترفیس Iterable را بررسی کنیم.
در تصویر زیر میتوانید ساختار کالکشنها را مشاهده کنید:
همانطور که در تصویر مشاهده میکنید رنگ قرمز نشان دهنده interface و رنگ سبز نشان دهنده class ها است. و برای ساخت نمونه ای از کالکشنها باید از کلاس ها(رنگ سبز) نمونه تعریف کرد. اولین کالکشن Iterable است و بقیه کالکشن ها از آن ارث برده اند.
هنگام کار با آرایهها برای دستیابی به عناصر آرایه از اندیس یا شماره خانه استفاده میکردیم، اما در Iterator به صورت سریالی عناصر را تک به تک تا انتها طی میکند.
آرایهها خاصیت Iterable ندارند اما لیستها و انواع کالکشن ها خاصیت Iterable دارند و میتوانیم به کمک Iterator روی آنها حرکت کنیم. کالکشنهایی که خاصیت Iterable دارند می توانیم به کمک متد forEach روی آنها حرکت کنیم.
Iterator دو متد دارد:
- hasNext: این متد بررسی میکند کالکشن به انتها رسیده یا خیر.
- next: این متد محتوای عنصر را برمیگرداند.
public static void main(String[] args) {
List<Integer> list1=new ArrayList<>();
list1.add(23);
list1.add(2000);
list1.add(450);
list1.add(89);
list1.add(148);
Iterator<Integer> iterator=list1.iterator();
while (iterator.hasNext()){
System.out.print(iterator.next()+"\t");
}
}
خروجی
23 2000 450 89 148
همچنین میتوانیم به کمک تابع forEach روی کالکشن حرکت کنیم.
List<Integer> list1=new ArrayList<>();
list1.add(23);
list1.add(2000);
list1.add(450);
list1.add(89);
list1.add(148);
list1.forEach(item-> System.out.print(item));
خروجی
23 2000 450 89 148
همانطور که گفتیم آرایه ها قابلیت Iterable ندارند اما میتوان آرایه را به لیست تبدیل کرد و عملیات مورد نظر را روی آن انجام داد به عنوان مثال یک آرایه از String داریم و میخواهیم با Iterator روی آن حرکت کنیم.
String[] names={"amir","ahmad","reza","ali","mehdi"};
List<String> list2=Arrays.asList(names);
Iterator iterator2=list2.iterator();
while(iterator2.hasNext()){
System.out.print(iterator2.next()+"\t");
}
خروجی
amir ahmad reza ali mehdi
سپاسگزاریم که همراه ما هستید
امیدواریم که این آموزش مورد توجه شما دوستان عزیز قرار گرفته باشد و بتواند شما را در راه رسیدن به اهدافتان کمک کند. برای دسترسی بیشتر به جلسات این دوره از آموزش جاوا پیشرفته کلیک کنید.
وخوشحال میشویم هر گونه پیشنهاد یا انتقادی دراین زمینه بود برای ما در قسمت نظرات ارسال کنید.
نظر شما در تصمیم دیگران اثرگذار است.
لطفا برای همراهان درسمن و بهتر شدن دوره نظر خود را بنویسید.