menusearch
javapro.ir
جستجو
۱۳۹۶/۹/۸ چهارشنبه
(2)
(0)
جلسه سوم - کلاس LinkedList در جاوا
جلسه سوم - کلاس LinkedList در جاوا
به نام خدا

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



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

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

Collections در جاوا

موضوع: کلاس LinkedList

جلسه: سوم

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

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

سلام. امیدوارم خوب و شاد باشی ، امروز قصد داریم کلاس LinkedList یکی از کلاس های موجود در فریم ورک Collection در جاوارا بررسی کنیم. در فارسی به LinkedList ، لیست پیوندی می گویند. در درس ساختمان داده ها شما با نحوه پیاده سازی الگوریتم  LinkedList(لیست پیوندی) آشنا می شوید. اما ما اصلا کار به این الگوریتم ها نداریم! تنها میخوایم کاربرد LinkedList(لیست پیوندی) مثل ArrayList در جاوارو بررسی کنیم.

کلاس LinkedList در جاوا
کلاس LinkedList از یک لیست پیوندی دو طرفه (doubly linked list) برای ذخیره عناصر استفاده می کند. کلاس LinkedList کلاس AbstractList را به ارث برده و دو اینترفیس List و Deque را implements کرده است، بنابراین به ویژگی ها و رفتارهای آنها دسرسی دارد.
 
یک LinkedList (لیست پیوندی) می توانید عناصر تکرای داشته باشد. 
 
دستکاری یک LinkedList (لیست پیوندی) به سرعت انجام می شود. 
 
یک LinkedList می تواند از  list، stack یا queue استفاده کند. 
 

•    در فارسی به queue صف ، به list لیست و به stack هم پشته می گویند. 😊😊😊


سلسله مراتب کلاس LinkedList در جاوا
در نمودار تصویر(1) نشان داده ایم که کلاس LinkedList کلاس AbstractList را  extends کرده و دو اینترفیس List و Deque را implements کرده است.

سلسله مراتب کلاس LinkedList  در جاوا


لیست پیوندی دو طرفه (Doubly Linked List)
در نمونه لیست پیوندی دو طرفه (doubly linked list) ، ما می توانیم عناصر خود را از هر طرف لیست اضاف یا حذف کنیم.در تصویر(2) نمونه ای از یک لیست پیوندی دو طرفه را مشاهده می کنید:

لیست پیوندی در جاوا

•    منظور از این که می توانیم از هر طرف لیست ، یک عنصر را اضاف یا حذف کنیم این است که مثلا می توانیم عنصر خود را از سمت راست یا چپ لیست حذف یا به آن اضاف کنیم.
•    مثلا قصد داریم عنصر 30 را به ابتدای لیست پیوندی دو طرفه موجود در تصویر(2) اضاف کنیم، نتیجه در تصویر(3) مشاهده کنید:

کاربرد لیست پیوندی در جاوا

•    حالا طریقه اضاف یا حذف کردن یک عنصر به لیست پیوندی دو طرفه رو جلوتر یاد خواهیم گرفت.

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

سازنده های کلاس LinkedList
 
شماره  Constructor(سازنده) توضیح 
1 LinkedList() برای ساختن یک لیست پیوندی (LinkedList) خالی استفاده می شود. 
2 LinkedList(Collection c) برای ایجاد یک لیست پیوندی (LinkedList) که عناصر درون لیست از عناصر مجموعه c تشکیل می شود.
همان طور که می دانید ما در فارسی به Collection مجموعه یا کلکسیون می گوییم.
مجموعه c می تواند شامل اشیای انواع کلاس های موجود در فریم ورک Collection مثل ArrayList و... شود.
 


متدهای کلاس LinkedList (لیست پیوندی)
 
شماره متد توضیح 
1 void add(int index, Object element) برای درج (اضاف کردن) یک عنصر مشخص در خانه index ام لیست پیوندی کاربرد دارد. 
2 void addFirst(Object o) عنصر o را ابتدای لیست پیوندی درج می کند.
منظور از ابتدای لیست همان خانه اول لیست می باشد.
 
3 void addLast(Object o) عنصر o را انتهای لیست پیوندی درج می کند. 
4 int size() تعداد عناصر موجود در لیست پیوندی را برمی گرداند. 
5 boolean add(Object o) عنصر o را به انتهای لیست پیوندی وصل می کند. 
6 boolean contains(Object o) اگر عنصر o در لیست پیوندی ما وجود داشت مقدار true برمی گرداند در غیر این صورت مقدار false برمی گرداند.
معمولا برای پیدا کردن یک عنصر در لیست پیوندی استفاده می شود.
 
7 boolean remove(Object o) 
برای حذف اولین عنصر o موجود در لیست پیوندی استفاده می شود.
برای مثال فرض کنید یک لیست پیوندی به صورت زیر داشته باشیم:
[e, a, b, c, a, d]
در لیست پیوندی بالا همان طور که می بینید، دو عنصر a وجود دارد، حال اگر بخواهیم از طریق متد remove عنصر a را حذف کنیم، اولین عنصر a موجود در لیست حذف می شود، نتیجه بعد از حذف عنصر a از طریق این متد به صورت زیر است:
 [e, b, c, a, d]
پس متد remove(Object o) همیشه اولین عنصر مشخص o را در یک لیست پیوندی حذف می کند.
 
8 Object getFirst() اولین عنصر لیست پیوندی را برمی گرداند. 
9 Object getLast() آخرین عنصر لیست پیوندی را برمی گرداند. 
10 int  indexOf(Object o) 
ایندکس یا شماره خانه اولین عنصر مشخص o در لیست پیوندی را برمی گرداند. در صورت عدم وجود عنصر مورد نظر در لیست پیوندی مقدار -1 را برمی گرداند.
منظور اولین عنصر این است که اگر چند عنصر o تکراری در لیست پیوندی داشته باشیم ، اولین o را انتخاب کرده و شماره خانه آن را برمی گرداند.
برای مثال فرض کنید یک لیست پیوندی به صورت زیر داشته باشیم:
[e, a, b, c, a, d]
در این لیست پیوندی قصد داریم ایندکس یا شماره خانه اولین عنصر a را به دست آوریم، همان طور که مشاهده می کنید در این لیست پیوندی ما دو عنصر مشابه a وجود دارد. اگر عنصر a را به عنوان پارامتر به متد indexOf بدهیم، شماره خانه اولین عنصر a موجود در لیست پیوندی را به ما تحویل می دهد، که برابر 1 می باشد.
 
11 int lastindexOf(Object o) 
 این متد برعکس متد indexOf عمل می کند.
این متد ایندکس یا شماره خانه آخرین عنصر o موجود در لیست پیوندی را برمی گرداند.  در صورت عدم وجود عنصر مورد نظر در لیست پیوندی مقدار -1 را برمی گرداند.
برای مثال فرض کنید یک لیست پیوندی به صورت زیر داشته باشیم:
[e, a, b, c, a, d]
در این لیست پیوندی قصد داریم ایندکس یا شماره خانه آخرین عنصر a را به دست آوریم، همان طور که مشاهده می کنید در این لیست پیوندی ما دو عنصر مشابه a وجود دارد. اگر عنصر a را به عنوان پارامتر به متد lastindexOf بدهیم، شماره خانه آخرین عنصر a موجود در لیست پیوندی را به ما تحویل می دهد، که برابر 4 می باشد.
 
 

 
•    اگر توضیحات روشن نبود نگران نباشید چرا که حل مثال و آزمون و خطا کردن شما رو در یادگیری کمک خواهد کرد.
 
Example:
 
package linkedList;


//https://t.me/javalike

import java.util.*;

public class TestCollection7 {
    public static void main(String args[]) {

        LinkedList<String> al = new LinkedList<String>();
        al.add("borazjan");
        al.add("bushehr");
        al.add("Tehran");
        al.add("shiraz");
        al.addFirst("kermanshah");

        Iterator<String> itr = al.iterator();
        while (itr.hasNext()) {
            System.out.println(itr.next());
        }
    }
 
خروجی(output):
 
kermanshah
borazjan
bushehr
Tehran
shiraz
 
 
 
توضیحات:
 
LinkedList<String> al = new LinkedList<String>();
 

برای ایجاد یک LinkedList (لیست پیوندی) نیز می توانیم شبیه ArrayList عمل کنیم.
گام های ایجاد یک LinkedList که عناصرش می توانند از نوع String باشند به صورت زیر است:

روش ایجاد شی از LinkedList در جاوا

1.    ابتدا نام کلاس LinkedList را تایپ می کنیم.

2.    بعد نوع عناصری که لیست پیوندی ما می تواند ذخیره کند را بین دو تگ < > قرار می دهیم.ما در اینجا نوع عناصر لیست پیوندی را از نوع String تعیین کرده ایم.

3.    یک نام برای لیست پیوندی خود تعیین می کنیم.

4.    یک علامت مساوی می گذاریم.

5.    همان طور که می دانید برای شی سازی از هر کلاس باید از کلمه کلیدی new استفاده کنیم.
6.    دوباره نام کلاس LinkedList را تایپ می کنیم.

7.    دوباره نوع عناصری که لیست پیوندی ما می تواند ذخیره کند را بین دو تگ < > قرار می دهیم.
8.    پرانتر باز و بسته می کنیم

9.    یک علامت ; هم انتهای پرانتز می گذاریم.

•    مورد 6 تا 8 همان سازنده کلاس LinkedList می باشد که بعد از کلمه کلیدی new صدا زده شده است.

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




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



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

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

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

0 نظر
طراحی سایتطراحی سایتسایت سازسایت سازفروشگاه سازفروشگاه ساز