ثانیه

دقیقه

ساعت

روز

آموزش Vector ،LinkedList و Stack در جاوا، جامع و کاربردی


آموزش Vector ، LinkedList و Stack در جاوا، جامع و کاربردی
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

آموزش Vector ، LinkedList و Stack در جاوا، جامع و کاربردی

در جلسه گذشته انواع لیست‌ها را توضیح دادیم و همچنین متدهای مشترک بین List ها را بررسی کردیم. در این جلسه می خواهیم متدهای هر کدام از لیست ها را بررسی کنیم.

متد های کلاس ArrayList

متد ensureCapacity

به کمک این متد می‌توانیم سایز ArrayList را مشخص کنیم.

ArrayList<String> names=new ArrayList<>();

names.addAll(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

names.ensureCapacity(1000);

متد trimToSize

این متد خانه‌های اضافه ArrayList را پاک می‌کند.

ArrayList<String> names=new ArrayList<>();

names.addAll(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

names.trimToSize();

متد replaceAll

این متد یک UnaryOperator دریافت می‌کند و روی تمام عناصر ArrayList اعمال می‌کند. UnaryOperator یک اینترفیس جنریک درون جاوا است که یک متد به نام apply دارد و ورودی و خروجی این متد یکسان است.

class MyOperator implements UnaryOperator<String>{

    @Override

    public String apply(String s) {

        return "*"+s+"#";

    }

}


public class MainClass {

    public static void main(String[] args) {

        ArrayList<String> names=new ArrayList<>();

        names.addAll(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

        names.replaceAll(new MyOperator());

        System.out.println(names);

    }

}

خروجی

[*mehdi#,  *ahmad#,  *negin#,  *zahra#,  *mehran#]

در بالا متدهای کاربردی ArrayList را توضیح دادیم و در ادامه می‌خواهیم متدهای LinkedList را بررسی کنیم.

ساختار LinkedList لیست پیوندی است یعنی هر عنصر، عنصر بعدی خودش را می‌شناسد و عناصر در کنار یکدیگر نیستند. همانطور که در جلسه گذشته توضیح دادیم بهتر است زمانی که زیاد به عملیات درج و حذف نیاز داریم از LinkedList استفاده کنیم.

نحوه تعریف LinkedList

LinkedList<String> linkedList=new LinkedList<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

System.out.println(linkedList);

خروجی

 [mehdi,  ahmad,  negin,  zahra,  mehran]

متد های کلاس LinkedList

متد addFirst

این متد یک عنصر را به ابتدای LinkedList اضافه می‌کند.

LinkedList<String> linkedList=new LinkedList<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

linkedList.addFirst("narges");

System.out.println(linkedList);

خروجی

[narges,  mehdi,  ahmad,  negin,  zahra,  mehran]

متد addLast

این متد یک عنصر به انتهای LinkedList اضافه می کند. بجای متد addLast می‌توان از متد add هم استفاده کرد.

متد getFirst

این متد اولین عنصر LinkedList را برمی‌گرداند.

LinkedList<String> linkedList=new LinkedList<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

System.out.println(linkedList.getFirst());

خروجی

mehdi

متد getLast

این متد آخرین عنصر LinkedList را برمی‌گرداند.

LinkedList<String> linkedList=new LinkedList<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

System.out.println(linkedList.getLast());

خروجی

Mehran

در بالا متدهای کاربردی کلاس LinkedList را توضیح دادیم و در ادامه متدهای کلاس Vector را بررسی می‌کنیم.

در جلسه گذشته گفتیم Vector و ArrayList بر اساس ساختار آرایه ها ساخته شده اند. تفاوت Vector نسبت به ArrayList پشتیبانی از چند نخی است. و همچنین زمانی که سایز عناصر بیشتر از 128 واحد شود تعداد عناصر Vector دو برابر می‌شود و از لحاظ حافظه ArrayList فضای کمتری اشغال می‌کند و نگهداری داده ها درون ArrayList ایمن تر است.

نحوه تعریف Vector

LinkedList<String> linkedList=new LinkedList<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

System.out.println(linkedList.getLast());

متد های کلاس Vactor

متد insertElementAt

این متد یک عنصر را در جای مشخصی از Vector اضافه می‌کند.

Vector<String> vector=new Vector<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

vector.insertElementAt("narges",3);

System.out.println(vector);

خروجی

[mehdi,  ahmad,  negin,  narges,  zahra, mehran]

متد removeElementAt

این متد شماره خانه را دریافت می‌کند و مقدار آن را حذف می‌کند.

Vector<String> vector=new Vector<>(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

vector.removeElementAt(1);

System.out.println(vector);

خروجی

[mehdi,  negin,  zahra,  mehran]

در بالا متدهای مهم و کاربردی Vector را توضیح دادیم و در ادامه متدهای کلاس Stack را بررسی می‌کنیم.

همانطور که در جلسات گذشته توضیح دادیم Stack یا پشته نوع خاصی از لیست است و آخرین عنصری که درج می‌کنیم، اولین عنصری است که برمی‌داریم.

متد های کلاس Stack

متد push

این متد یک عنصر را به انتهای Stack اضافه می‌کند.

Stack<String> stack1=new Stack<>();

stack1.addAll(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

stack1.push("narges");

System.out.println(stack1);

خروجی

[mehdi,  ahmad,  negin,  zahra,  Mehran,  narges]

متد pop

این متد آخرین عنصر را برمی‌گرداند و از درون Stack پاک می‌کند.

Stack<String> stack1=new Stack<>();

stack1.addAll(Arrays.asList("mehdi","ahmad","negin","zahra","mehran"));

System.out.println(stack1.pop());

System.out.println(stack1);

خروجی

mehran

[mehdi,  ahmad,  negin,  zahra]

کلاس‌های اینترفیس List را در بالا توضیح دادیم و متدهای هر کدام از کلاس‌های List(ArrayList, LinkedList, Vector, Stack) را بررسی کردیم.

 

یادگیری این دوره تنها با یک جلسه به پایان نمی‌رسد و شما می‌توانید با تهیه این درس و سایر دروس ارائه شده در این دوره، به طور کامل به مباحث جاوا پیشرفته تسلط پیدا کنید.

یادگیری عمیق این درس نیازمند مطرح کردن سوال و دیدن جلسات بیشتر از این دوره است که شما می‌توانید از دیگر دوستان خود که این دوره را تهیه کرده اند در انجمن برنامه نویسان جاوا سوالات خود را پرسیده و ابهاماتتان را برطرف کنید.

 


نظر بدهید نظر شما در تصمیم دیگران اثرگذار است. لطفا برای ما و همراهان درسمن نظر خود را بنویسید.
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.


مشخصات دوره


مدرس دوره : مهدی عباسی
تعداد جلسات : جلسه
مدت زمان : 2057 دقیقه
حجم دوره : 6/35 گیگابایت
سطح مهارت : پیشرفته
وضعیت دوره : پایان یافته
تعداد دانشجویان : 1390
: میانگین امتیاز
برای دسترسی به این دوره وارد یا عضو شوید.
مهدی عباسی

مهدی عباسی هستم، مسلط به حداقل ۲۰ زبان مطرح برنامه نویسی به صورت پیشرفته، مدیر عامل شرکت آریا نرم افزار و بنیانگذار آکادمی درسمن، مسلط به تدریس دروس تخصصی کاردانی و کارشناسی کامپیوتر، پایگاه داده ها، برنامه نویسی پیشرفته، مبانی برنامه نویسی، مباحث ویژه طراحی وب و ....