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மற்றும் வகுப்புகள் ஒவ்வொன்றையும் பயன்படுத்துவதில்லை HashMap, ஆனால் தொடர்புடைய இடைமுகங்களுடன்: Collection<T>, List<T>, Map<K, V>.

இது ஒரு பிரச்சனையல்ல: ஒரு முறை a ஐ ஏற்றுக்கொண்டால் 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()முறை சேகரிப்பின் அனைத்து கூறுகளையும் listஉறுப்புடன் மாற்றுகிறது obj.

குறியீடு கன்சோல் வெளியீடு
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சமமாக மாற்றுகிறது oldValue.newValue

குறியீடு கன்சோல் வெளியீடு
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()எத்தனை முறை objநிகழ்கிறது என்பதை முறை கணக்கிடுகிறதுcolls

குறியீடு கன்சோல் வெளியீடு
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