بررسی کامل کلاس Collections در جاوا


بررسی کامل کلاس Collections در جاوا
براي خريد اين درس نياز است وارد سايت شويد. در صورت نداشتن حساب کاربري عضو شويد.

بررسی کامل کلاس Collections در جاوا

در جلسات گذشته اینترفیس Collection را توضیح دادیم و هر یک از فرزندان آن را بررسی کردیم. در این جلسه می‌خواهیم کلاس Collections را بررسی کنیم.

کلاس Collections درون پکیج java.util قرار دارد و متدهای استاتیک زیادی برای کار روی Collection دارد و می‌توانیم برای برنامه هایی با کارایی بهتر و راحت تر از آنها استفاده کنیم.

در کلاس Collections سه ثابت تعریف شده است که می‌توان با استفاده از آنها List, Map, Set های خالی تعریف کرد.

System.out.println(Collections.EMPTY_LIST);

System.out.println(Collections.EMPTY_MAP);

System.out.println(Collections.EMPTY_SET);

خروجی

[]

{}

[]

نکته: می‌توان List, Map, Set را برابر این ثابت ها قرار داد اما نمی‌توان درون آنها تغییراتی مانند اضافه کردن، حذف و ویرایش انجام داد.

متدهای کاربردی کلاس Collections

متد addAll

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

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

list1.add("mehdi");

list1.add("ali");


Collections.addAll(list1,"amir","sara","negin","saeed");

System.out.println(list1);

خروجی

[mehdi, ali, amir, sara, negin, saeed]

متد sort

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

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.sort(list1);

System.out.println(list1);

خروجی

[ali, amir, mehdi, negin, saeed, sara]

در بالا لیست را به صورت صعودی مرتب کردیم. برای مرتب سازی لیست به صورت نزولی در تابع سازنده آن از متد Collections.reverseOrder() استفاده می‌کنیم.

Collections.sort(list1,Collections.reverseOrder());

System.out.println(list1);

خروجی

[sara, saeed, negin, mehdi, amir, ali]

متد reverse

این متد برای برعکس کردن عناصر لیست استفاده می‌شود.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.reverse(list1);

System.out.println(list1);

خروجی

[saeed, negin, sara, amir, ali, mehdi]

متد copy

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

نکته: برای کپی کردن باید سایز لیست مقصد بزرگ تر یا مساوی سایز لیست مبدا باشد.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

List<String> list2=new ArrayList<>(Arrays.asList("aaaaa","bbbbb","ccccc","tttttt"));

Collections.copy(list1,list2);

System.out.println(list1);

خروجی

[aaaaa, bbbbb, ccccc,ttttt, negin, saeed]

متد fill

این متد تمام عناصر لیست را برابر یک مقدار ثابت قرار می‌دهد.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.fill(list1,"###");

System.out.println(list1);

خروجی

[###, ###, ###, ###,  ###, ###]

متد rotate

این متد برای چرخاندن(شیفت دادن) لیست استفاده می‌شود.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.rotate(list1,3);

System.out.println(list1);

خروجی

[sara, negin, saeed, mehdi, ali, amir]

متد shuffle

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

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.shuffle(list1);

System.out.println(list1);

خروجی

[amir, mehdi, negin, saeed, ali, sara]

متد swap

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

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

Collections.swap(list1,1,4);

System.out.println(list1);

خروجی

[mehdi, negin, amir, sara, ali, saeed]

متد unmodifiableList

این متد برای ایجاد یک نمونه از لیست به صورت غیر قابل تغییر است. به عنوان مثال زمانی که از متد unmodifableList استفاده می‌کنیم، اجازه اضافه کردن، ویرایش و حذف درون آن لیست را داریم.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

list1.remove("sara");

List<String> tempList=Collections.unmodifiableList(list1);

System.out.println(tempList);

خروجی

[mehdi, ali, amir, negin, saeed]

در کد زیر خروجی با خطا مواجعه می‌شود به دلیل اینکه درون لیست tempList داده ای اضافه کردیم.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","saeed");

list1.remove("sara");

List<String> tempList=Collections.unmodifiableList(list1);

tempList.add("sara");

System.out.println(tempList);

متد replaceAll

این متد برای replace کردن عناصر لیست استفاده می‌شود.

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

Collections.addAll(list1,"mehdi","ali","amir","sara","negin","mehdi","saeed");

Collections.replaceAll(list1,"mehdi","Mehdi");

System.out.println(list1);

خروجی

[Mehdi, ali, amir, sara, negin, Mehdi, saeed]

متد binarySearch

این متد برای جستجو باینری(دودویی) در لیست استفاده می‌شود و شماره خانه نتیجه جستجو را برمی‌گرداند اگر نتیجه را پیدا نکند عدد منفی برمی‌گرداند.

نکته: برای جستجو باینری حتما باید لیست مرتب شده باشد.

List<Integer> numbers=new ArrayList<>(Arrays.asList(2342,56,348,234,68,9,54,645,34,12,4,6));

Collections.sort(numbers);

System.out.println(numbers);

System.out.println(Collections.binarySearch(numbers,68));

خروجی

[4, 6, 9, 12, 34, 54, 56, 68, 234, 348, 645, 2342]

7

متد min

این متد کوچکترین عنصر درون کالکشن را برمی‌گرداند.

List<Integer> numbers=new ArrayList<>(Arrays.asList(2342,56,348,234,68,9,54,645,34,12,4,6));

System.out.println(Collections.min(numbers));

خروجی

4

متد max

این متد بزرگترین عنصر درون کالکشن را برمی‌گرداند.

List<Integer> numbers=new ArrayList<>(Arrays.asList(2342,56,348,234,68,9,54,645,34,12,4,6));

System.out.println(Collections.max(numbers));

خروجی

2342

تا اینجا با متدهای کاربردی کلاس Collections آشنا شدیم. در ادامه نحوه استفاده از متدهای کلاس Collections برای کلاس های مدل آشنا می‌شویم.

 

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

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

 


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


مشخصات دوره


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

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