CodeGym /Java Course /মডিউল 1 /সংগ্রহ - একটি সহায়ক শ্রেণী

সংগ্রহ - একটি সহায়ক শ্রেণী

মডিউল 1
লেভেল 18 , পাঠ 3
বিদ্যমান

1. পদ্ধতির তালিকা

Arraysমনে রাখবেন যে জাভা এর নির্মাতারা অ্যারেগুলির সাথে কাজ করার সময় আমাদের সুবিধার জন্য একটি সম্পূর্ণ সাহায্যকারী ক্লাস লিখেছিলেন ?

তারা সংগ্রহের জন্য একই কাজ করেছে। জাভাতে একটি java.util.Collectionsক্লাস রয়েছে যার অনেকগুলি পদ্ধতি রয়েছে যা সংগ্রহের সাথে কাজ করার জন্য দরকারী। এখানে শুধু সবচেয়ে আকর্ষণীয় হল:

পদ্ধতি বর্ণনা
addAll(colls, e1, e2, e3, ...)
সংগ্রহে উপাদান e1, e2, e3, ... যোগ করেcolls
fill(list, obj)
পাস করা তালিকার সমস্ত উপাদান এর সাথে প্রতিস্থাপন করেobj
nCopies(n, obj)
nবস্তুর অনুলিপিগুলির objএকটি তালিকা প্রদান করে
replaceAll(list, oldVal, newVal)
তালিকায় oldValথাকা সমস্ত দৃষ্টান্ত প্রতিস্থাপন করেnewVallist
copy(dest, src)
তালিকা থেকে তালিকায় srcসমস্ত উপাদান অনুলিপি করেdest
reverse(list)
তালিকা উল্টে দেয়।
sort(list)
তালিকাকে ক্রমবর্ধমান ক্রমে সাজান
rotate(list, n)
চক্রীয়ভাবে তালিকার উপাদানগুলিকে উপাদান listদ্বারা স্থানান্তরিত করেn
shuffle(list)
এলোমেলোভাবে তালিকার উপাদানগুলিকে এলোমেলো করে
min(colls)
collsসংগ্রহে ন্যূনতম উপাদান খুঁজে বের করে
max(colls)
collsসংগ্রহে সর্বাধিক উপাদান খুঁজে বের করে
frequency(colls, obj)
সংগ্রহে উপাদানটি কতবার objআসে তা নির্ধারণ করেcolls
binarySearch(list, key)
keyএকটি সাজানো তালিকায় অনুসন্ধান করে এবং সংশ্লিষ্ট সূচী প্রদান করে।
disjoint(colls1, colls2)
trueসংগ্রহে কোনো উপাদান মিল না থাকলে রিটার্ন করে
গুরুত্বপূর্ণ:

ArrayListএই পদ্ধতিগুলির মধ্যে অনেকগুলি , HashSetএবং ক্লাস প্রতি se ব্যবহার করে না HashMap, তবে সংশ্লিষ্ট ইন্টারফেসের সাথে: Collection<T>, List<T>, Map<K, V>.

এটি একটি সমস্যা নয়: যদি একটি পদ্ধতি একটি গ্রহণ করে List<T>, আপনি সর্বদা এটি একটি পাস করতে পারেন ArrayList<Integer>, কিন্তু অ্যাসাইনমেন্ট অপারেটর বিপরীত দিকে কাজ করে না।


2. সংগ্রহ তৈরি করা এবং পরিবর্তন করা

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)পদ্ধতি

পদ্ধতিটি addAll()উপাদান e1, e2, e3, ... সংগ্রহে যোগ করে collsযে কোনো সংখ্যক উপাদান পাস করা যেতে পারে।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

for (int i: list)
   System.out.println(i);
1
2
3
4
5

Collections.fill(List<T> list, T obj)পদ্ধতি

পদ্ধতিটি উপাদানের সাথে সংগ্রহের fill()সমস্ত উপাদান প্রতিস্থাপন করে ।listobj

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.fill(list, 10);

for (int i: list)
   System.out.println(i);
10
10
10

Collections.nCopies(int n, T obj)পদ্ধতি

পদ্ধতিটি উপাদানটির অনুলিপিগুলির nCopies()একটি তালিকা প্রদান করে । নোট করুন যে প্রত্যাবর্তিত তালিকাটি অপরিবর্তনীয়, যার মানে আপনি এটি পরিবর্তন করতে পারবেন না! আপনি শুধুমাত্র মান পড়তে এটি ব্যবহার করতে পারেন:nobj

কোড বর্ণনা
List<String> immutableList = Collections.nCopies(5, "Hello");

ArrayList<String> list = new ArrayList<String>(immutableList);

for(String s: list)
   System.out.println(s);
Hello5টি স্ট্রিংয়ের একটি অপরিবর্তনীয় তালিকা তৈরি করুন
একটি পরিবর্তনযোগ্য তৈরি করুন এবং তালিকা listথেকে মান দিয়ে এটি পূরণ করুন । কনসোল আউটপুট:immutableList


Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)পদ্ধতি

পদ্ধতিটি replaceAll()সংগ্রহের সমস্ত উপাদানকে এর সাথে listসমান করে প্রতিস্থাপন করে ।oldValuenewValue

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);

Collections.replaceAll(list, 2, 20);

for (int i: list)
   System.out.println(i);
1
20
3

Collections.copy (List<T> dest, List<T> src)পদ্ধতি

পদ্ধতিটি copy()সংগ্রহের সমস্ত উপাদান srcসংগ্রহে অনুলিপি করে dest

যদি destসংগ্রহটি সংগ্রহের চেয়ে বেশি সময় ধরে শুরু হয় src, তবে সংগ্রহের অবশিষ্ট উপাদানগুলি destঅক্ষত থাকবে।

গুরুত্বপূর্ণ:
সংগ্রহটি destকমপক্ষে যতদিন srcসংগ্রহ করা হবে ততক্ষণ হতে হবে (অন্যথায়, একটি IndexOutOfBoundsExceptionনিক্ষেপ করা হবে)।
কোড কনসোল আউটপুট
ArrayList<Integer> srcList = new ArrayList<Integer>();
Collections.addAll(srcList, 99, 98, 97);

ArrayList<Integer> destList = new ArrayList<Integer>();
Collections.addAll(destList, 1, 2, 3, 4, 5, 6, 7);

Collections.copy(destList, srcList);

for (int i: destList)
   System.out.println(i);
99
98
97
4
5
6
7


3. উপাদানের ক্রম

Collections.reverse(List<T> list)পদ্ধতি

পদ্ধতিটি reverse()পাস করা তালিকার উপাদানগুলির ক্রমকে বিপরীত করে।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.reverse(list);

for (int i: list)
   System.out.println(i);
5
4
3
2
1

Collections.sort(List<T> list)পদ্ধতি

পদ্ধতিটি sort()পাস করা তালিকাকে আরোহী ক্রমে সাজায়।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

Collections.sort(list);

for (int i: list)
   System.out.println(i);
2
4
11
15
23

Collections.rotate(List<T> list, int distance)পদ্ধতি

পদ্ধতিটি rotate()চক্রগতভাবে পাস করা তালিকার উপাদানগুলিকে distanceপজিশনের মাধ্যমে এগিয়ে নিয়ে যায়।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7, 8, 9);

Collections.rotate(list, 3); // Shift by 3 positions

for (int i: list)
   System.out.println(i);
7
8
9
1
2
3
4
5
6

Collections.shuffle(List<T> list)পদ্ধতি

পদ্ধতিটি shuffle()এলোমেলোভাবে পাস করা তালিকার সমস্ত উপাদানকে এলোমেলো করে দেয়। প্রতিবারই ফলাফল ভিন্ন।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5);

Collections.shuffle(list); // Shuffle the elements

for (int i: list)
   System.out.println(i);
5
2
4
3
1


4. সংগ্রহে উপাদান খোঁজা

Collections.min(Collection<T> colls)পদ্ধতি

পদ্ধতিটি min()সংগ্রহের সর্বনিম্ন উপাদান প্রদান করে।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int min = Collections.min(list);

System.out.println(min);
2

Collections.max(Collection<T> colls)পদ্ধতি

পদ্ধতিটি max()সংগ্রহে সর্বাধিক উপাদান প্রদান করে।

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15);

int max = Collections.max(list);

System.out.println(max);
23

Collections.frequency(Collection<T> colls, T obj)পদ্ধতি

পদ্ধতিটি সংগ্রহে উপাদানটি frequency()কতবার উপস্থিত হয় তা গণনা করেobjcolls

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 4, 15, 4, 2, 4);

int count = Collections.frequency(list, 4);

System.out.println(count);
3

Collections.binarySearch(Collection<T> colls, T obj)পদ্ধতি

পদ্ধতিটি সংগ্রহের উপাদানটির binarySearch()জন্য অনুসন্ধান করে । পাওয়া উপাদানের সূচী প্রদান করে। উপাদান পাওয়া না গেলে একটি ঋণাত্মক সংখ্যা প্রদান করে।objcolls

গুরুত্বপূর্ণ:
পদ্ধতিটি কল করার আগে binarySearch(), সংগ্রহটি অবশ্যই সাজাতে হবে (ব্যবহার করুন Collections.sort())।
কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 11, 2, 23, 5, 15, 4, 2, 4);

Collections.sort(list);  // 2, 2, 4, 4, 5, 11, 15, 23

int index = Collections.binarySearch(list, 5);    // 4
System.out.println(index);

int index2 = Collections.binarySearch(list, 15);  // 6
System.out.println(index2);

int index3 = Collections.binarySearch(list, 16); // The element doesn't exist
System.out.println(index3);
4
6
-8

Collections.disjoint(Collection<T> coll1, Collection<T> coll2)পদ্ধতি

পাস করা সংগ্রহগুলির মধ্যে কোনো উপাদান মিল না থাকলে পদ্ধতিটি disjoint()ফেরত দেয় ।true

কোড কনসোল আউটপুট
ArrayList<Integer> list = new ArrayList<Integer>();
Collections.addAll(list, 1, 2, 3, 4, 5, 6, 7);

ArrayList<Integer> list2 = new ArrayList<Integer>();
Collections.addAll(list2, 99, 98, 97);

boolean isDifferent = Collections.disjoint(list, list2);
System.out.println(isDifferent);
true

মন্তব্য
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION