menusearch
javapro.ir

جلسه پنجم - اینترفیس List در جاوا

جستجو
شنبه ۶ مرداد ۱۴۰۳ | ۷:۱۷:۵۸
۱۳۹۶/۹/۱۰ جمعه
(4)
(0)
جلسه پنجم - اینترفیس List در جاوا
جلسه پنجم - اینترفیس List در جاوا
به نام خدا

       
تقدیم به هموطنان عزیزم



جاوا را با لذت یاد بگیر!


آموزش زبان برنامه نویسی جاوا

Collections در جاوا

موضوع: اینترفیس List

جلسه: پنجم

نویسنده : رحمان زارعی

جاوا را ساده،آسان و شیرین بنوشید!!!


سلام. در یک روز پاییزی در خدمت شما هستم.در این جلسه آموزشی جاوا قصد داریم یکی از اینترفیس های موجود درفریم ورک Collection را بررسی کنیم.

List Interface
طبق نمودار موجود در تصویر(1) اینترفیس List فرزند اینترفیس Collection در جاوا است. List دارای متدهایی است که از طریق‌ آنها می‌توان عناصر را بر اساس ایندکس هایشان (شماره خانه شان) درج یا حذف کرد.


سلسله مراتب اینترفیس list در جاوا
 

•    چرا اینترفیس List فرزند اینترفیس Collection است؟ زیرا اینترفیس List اینترفیس Collection را extends کرده است.

•    اینترفیس List توسط کلاس های ArrayList، LinkedList، Vector و Stack پیاده سازی یا implements شده است. به دلیل این که List اینترفیس است، هنگام شی سازی از آن می‌توانیم از سازنده های کلاس های ArrayList، LinkedList، Vector و Stack کمک بگیریم.


ایجاد اشیا از List :
همان طور که می‌دانید List یک اینترفیس است و ما نمی‌توانیم مستقیم از آن شی ایجاد کنیم. به روش های زیر می‌توانیم از یک List شی ایجاد کنیم:
List<String> a = new ArrayList<String>();
List<String> b = new LinkedList<String>();
List<String> c = new Vector<String>();
List<String> d = new Stack<String>();

•    کافی است که نوع شی از نوع اینترفیس List و سازنده آن از یکی از کلاس های ArrayList، LinkedList، Vector و Stack باشد.

•    ما در جلسات آینده کلاس های Vectorو Stack را بررسی خواهیم کرد. البته شما هم باید پی گیر و مطالبه گر باشید 😊😊

•    تگ <> کنار نام List برای مشخص کردن نوع عناصری است که قراره در List ما ذخیره شوند. این نوع می‌تواند عدد، رشته، نام کلاسی خاص و... باشد.

•    ما به روش معمولی از List شی ایجاد می‌کنیم با این تفاوت که سازنده آن، از یکی کلاس های ArrayList، LinkedList، Vector و Stack است، مثلا:


List a = new ArrayList();
 
حالا نوع عناصر List را میان دو تگ <> کنار نام List و نام سازنده آن قرار می‌دهیم.
List<String>a = new ArrayList<String>();

برای استفاده از List در برنامه خود باید پکیج زیر را بالای سر کلاس خود import کنید:
import java.util.List;

همچنین در صورت استفاده از سازنده یکی از کلاس ArrayList، LinkedList، Vector و Stack باید پکیج های مربوط‌ آنها را نیز در برنامه خود import کنید:
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Stack;
import java.util.Vector;
 

متدهای اینترفیس List :
شمارهمتدتوضیح
1void add(int index ,Object element)یک عنصر را در خانه مشخص ( index ) از لیست درج می‌کند.
2boolean addAll(int index ,Collection c)همه عناصر موجود در Collection (مجموعه) c را از خانه index ام به بعد لیست اضاف می‌کند.
کلاس های ArrayList و LinkedList و... یک Collection حساب می‌شوند.
3object get(int index )عنصر ذخیره شده در خانه index ام لیست را برمی گرداند.
4object set(int index ,Object element)عنصر مورد نظر را به خانه index ام لیست اختصاص می‌دهد.
5object remove(int index )عنصر مورد نظر در خانه index ام لیست را حذف می‌کند.
مقدار عنصر را نیز بعد از حذف به ما پس می‌دهد.
6ListIterator listIterator()برای پیمایش یک لیست از آن استفاده می‌کنیم
7ListIterator listIterator(int index )برای پیمایش یک لیست از خانه index ام به بعد استفاده می‌شود.
مثلا قصد دارید بجای خانه صفرم، از خانه سوم به بعد شروع به پیمایش یک لیست کنید کافیست مقدار پارامتر این متد را 3 قرار دهید.
 
Example:
package list;

import java.util.*;

public class ListExample {
   public static void main(String args[]) {
       List<String> al = new ArrayList<String>();
       al.add("hasan");
     al.add("ali");
       al.add("sara");
       al.add(1, "maryam");
       System.out.println("Element at 2nd position: " + al.get(2));
     for (String s : al) {
           System.out.println(s);
       }
   }
}

خروجی ( output):
Element at 2nd position: ali
hasan
maryam
ali
sara

توضیحات:
List<String> al = new ArrayList<String>();
 
•    یک شی از List با استفاده از سازنده کلاس ArrayList ایجاد کرده ایم. عناصری که لیست ما می‌تواند ذخیره کند از نوع String است.
al.add("hasan");
al.add("ali");
al.add("sara");
 
•    متد add عنصر مورد نظر را به لیست اضاف می‌کند.به گونه ای که هر عنصر بعد از آخرین عنصر موجود در لیست قرار می‌گیرد. در اینجا عنصر "hasan" در خانه صفرم و عنصر "ali" در خانه یکم و عنصر "sara" در خانه بعد از عنصر "ali" یعنی خانه دوم قرار گرفته است.
al.add(1, "maryam");

این دستور عنصر "maryam" را به خانه یکم اضاف می‌کند، همان طور که می‌دانید در خانه یکم عنصر "ali" قرار داشت، با این کار عنصر "ali" جابه جا شده و به خانه دوم منتقل میشه و عنصر "sara" نیز به خانه سوم منتقل میشه و "maryam" در خانه یکم قرار می‌گیرد.
System.out.println("Element at 2nd position: " + al.get(2));

•    عنصر مورد نظر در خانه دوم لیست را برمی گرداند.
for (String s : al) {
           System.out.println(s);
       }

•    برای پیمایش لیست از حلقه for-each استفاده کرده ایم. این حلقه رو در جلسات قبل توضیح داده ایم.

ListIterator Interface
اینترفیس ListIterator برای پیمایش رو به جلو و رو به عقب عناصر یک لیست استفاده می‌شود.
اینترفیس ListIterator، اینترفیس Iterator را extends کرده است.
برای استفاده از اینترفیس ListIterator، باید پکیج زیر را import کنید:

import java.util.ListIterator;


متدهای اینترفیس ListIterator :

شمارهمتدتوضیح
1boolean hasNext()وقتی که در حال پیمایش رو به جلو لیست هستیم، این متد چک می‌کند آیا عنصری بعد از عنصر فعلی وجود دارد یا خیر. در صورت وجود مقدار true برمی گرداند.
برای بررسی شرط وجود عنصر در لیست از این متد استفاده می‌شود.
2Object next()عنصر بعد از عنصر فعلی را برمی گرداند.
3boolean hasPrevious()وقتی که در حال پیمایش رو به عقب لیست هستیم، این متد چک می‌کند که ایا عنصری قبل از عنصر فعلی وجود دارد یا خیر. ( در کل برای چک کردن وجود عنصر در لیست است)
برای پیمایش معکوس یک لیست از این متد استفاده می‌کنیم. منظور از پیمایش معکوس این است که از آخر به اول لیست را پیمایش می‌کنیم.
4Object previous()عنصر قبل از عنصر فعلی را برمی گرداند.

•    روش استفاده از امکانات اینترفیس ListIterator، برای پیمایش یک لیست را در مثال زیر می‌توانید ببینید:
Example:
package list;

import java.util.*;

public class TestCollection8 {
   public static void main(String args[]) {
       List<String> al = new ArrayList<String>();
       al.add("hasan");
       al.add("ali");
       al.add("sara");
     al.add(1, "maryam");
       System.out.println("element at 2nd position: " + al.get(2));
       ListIterator<String> itr = al.listIterator();
       System.out.println("traversing elements in forward direction...");
       while (itr.hasNext()) {
           System.out.println(itr.next());
       }
       System.out.println("traFversing elements in backward direction...");
       while (itr.hasPrevious()) {
           System.out.println(itr.previous());
       }
   }
}
 
خروجی ( output):
element at 2nd position: ali
traversing elements in forward direction...
hasan
maryam
ali
sara
traFversing elements in backward direction...
sara
ali
maryam
hasan

توضیحات:
ListIterator<String> itr = al.listIterator();
 
برای پیمایش لیست خود با استفاده از اینترفیس ListIterator، به روش بالا از ListIterator شی ایجاد می‌کنیم.

کاربرد اینترفیس ListIterator  در جاوا

1.    نام اینترفیس ListIterator را تایپ می‌کنیم.

2.    نوع عناصر لیستی که قراره پیمایش شوند را بین دو تگ <> قرار می‌دهیم. نوع عناصر لیست ما از نوع String بود به همین خاطر <String> را در کنار نام اینترفیس ListIterator قرار داده ایم.

3.    یک نام به دلخواه برای پیمایشگر خود انتخاب می‌کنیم.

4.    با استفاده از شی از نوع List متد ()listIterator صدا می‌زنیم.

•    قالب کلی ایجاد یک پیمایشگر ListIterator به صورت زیر است:


کاربرد  پیمایشگر ListIterator در جاوا
1.    تعیین نوع عناصری که قرار پیمایش شود.
2.    انتخاب یک نام دلخواه
3.    قرار دادن شی از نوع لیستی که قراره پیمایش شود.
  • حالا ایجاد یک حلقه برای پیمایش رو به جلو ( شروع پیمایش از ابتدا تا انتهای لیست):
پیمایش یک لیست در جاوا

1.    شرط حلقه، چک می‌کند که آیا عنصری بعد از عنصر فعلی وجود دارد یا خیر. در کل برای بررسی وجود عنصر در لیست است و این که به انتهای لیست رسیدیم یا خیر.

2.    با هر بار صدا زدن متد next عنصر بعد از عنصر فعلی برگردانده و سپس چاپ می‌شود.

ایجاد یک حلقه برای پیمایش رو به عقب لیست ( شروع پیمایش از انتها تا ابتدای لیست):


پیمایش رو به عقب یک لیست در جاوا

1.    بررسی می‌کند، قبل از عنصر فعلی، عنصری دیگر وجود دارد یا خیر. در کل چک می‌کند به ابتدای لیست رسیدیم یا خیر.

2.    این دستور عنصر قبل از عنصر فعلی را به ما می‌دهد و مقدارش را چاپ می‌کند.

پایان توضیحات مثال


متد List subList(int from  index ,int to index ) :

این متد بخشی از عناصر یک لیست را از خانه from  index تا to index  برمی گرداند. عناصر برگردانده شده در قالب یک list است.
توجه کنید که بازه ما به صورت [ from  index ,to index ) است، یعنی هنگام برگردادن بخشی از عناصر لیست، ایندکس from  index شامل می‌شود اما to index شامل نمی‌شود.
Example:
package list;

// Java program to demonstrate subList operation
// on List interface.
import java.util.*;

public class ListDemo {
  public static void main(String[] args) {
       // Type safe array list, stores only string
       List<String> l = new ArrayList<String>(5);

       l.add("javapro");
     l.add("java like ");
     l.add("java");
       l.add(" like ");
       l.add("tutorial");

       List<String> range = new ArrayList<String>();

       // return List between 2nd(including)
       // and 4th element(excluding)
     range = l.subList(2, 4);

       System.out.println(range); //[java, like ]
   }
}
 
خروجی ( output):
[java, like ]
 
•    در این مثال عناصر موجود در بازه [2,4) لیست را برگردانده ایم. بازه [2,4) شامل خانه های دوم و سوم لیست می‌شود و شامل خانه چهام نمی‌شود.

حتما برای تسلط بر این مفاهیم باید مثال های متعدد ببینید و حل کنید.


پیروز و موفق باشید



این جلسه آموزشی را می‌توانید بصورت کتاب الکترونیکی (PDF شده) در لینک زیر دریافت کنید.
این جلسه آموزشی را بصورت کامل و مرتب شده در لینک زیر دانلود کنید:(در صورت خرابی لینک گزارش دهید)




کانال تلگرام آموزش جاوا



آموزش آسان و ساده زبان برنامه نویسی جاوا
لینک دانلود

نشر این مطلب با ذکر منبع (لینک سایت) بلامانع است.
برای با خبر شدن از جدیدترین مطالب آموزشی جاوا عضو کانال تلگرام ما شوید.

aparattelegraminstagram
نظرات کاربران
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

بستن
*نام و نام خانوادگی
* پست الکترونیک
* متن پیام

0 نظر
هدر سایت
مشاهده سرفصل ها و ثبت نام در دوره Spring Boot جاواپرو  [کلیک کنید]
آموزش پروژه محور اسپرینگ بوت(Spring Boot)-سیستم دانشگاه
ثبت نام در دوره آموزش Spring security
دوره پرتاب | آموزش پیش نیازهای برنامه نویسی
دوره آموزش مبانی زبان برنامه نویسی جاوا
دوره آموزش مفاهیم پیشرفته زبان برنامه نویسی جاوا
مقدمه ای از زبان برنامه نویسی جاوا(java)
آموزش زبان برنامه نویسی جاوا
آموزش گرافیک در زبان برنامه نویسی جاوا
آموزش مدیریت چیدمان گرافیکی در زبان جاوا
آموزش ساخت بازی دوبعدی در زبان جاوا
Collection ها در زبان برنامه نویسی جاوا
آموزش پروژه محور ساخت برنامه مدیریت بانک با JavaFX
نمونه پروژه های رایگان زبان جاوا
آموزش دیتابیس در زبان برنامه نویسی جاوا
نمونه مثال پایه ای زبان برنامه نویسی جاوا
نمونه مثال String در زبان برنامه نویسی جاوا
آموزش جامع برنامه نویسی JavaFX
آموزش ساخت برنامه آزمون تستی در JavaFX
آموزش برنامه نویسی سوکت در جاوا
آموزش ساخت برنامه دفترچه تلفن با JavaFX
آموزش ساخت ربات ساده تلگرام با زبان جاوا
آموزش ساخت برنامه ماشین حساب با JavaFX
آموزش ساخت برنامه ساده مدیریت ایمیل ها با JavaFX
دوره آموزش Spring Boot
سفارش انجام پروژه زبان برنامه نویسی جاوا(JAVA)
سفارش انجام پروژه برنامه نویسی متلب(MATLAB) با قیمت منصفانه و تحویل به موقع
سفارش انجام پروژه زبان برنامه نویسی سی شارپ (#C)
سفارش انجام پروژه زبان برنامه نویسی سی(C)
سفارش انجام پروژه زبان برنامه نویسی پایتون(Python)
سفارش انجام پروژه زبان برنامه نویسی PHP (پی اچ پی)
سفارش انجام پروژه زبان برنامه نویسی اسمبلی(Assembly)
سفارش انجام پروژه زبان برنامه نویسی جاوا اسکریپت (Javascript)
سفارش انجام پروژه هوش مصنوعی
سفارش انجام پروژه طراحی الگوریتم
سفارش انجام پروژه ساختمان داده ها
سفارش انجام پروژه مهندسی نرم افزار
سفارش انجام پروژه شبکه های کامپیوتری
سفارش انجام پروژه پایگاه داده: دیتابیس (database)
 سفارش انجام پروژه سیستم عامل
سفارش انجام پروژه پاورپوینت(PowerPoint)
سفارش انجام پروژه اکسل (Excel)
سفارش انجام تحقیق و تهیه مقاله
سوالات متداول برنامه نویسی
جدیدترین مطالب
گفتگو را شروع کنید
مشاوره ،تدریس خصوصی و سفارش انجام انواع پروژه های برنامه نویسی