CodeGym /Java kursus /Modul 1 /Samlinger — en hjælperklasse

Samlinger — en hjælperklasse

Modul 1
Niveau , Lektie
Ledig

1. Liste over metoder

Kan du huske, at Javas skabere skrev en hel hjælperklasse, der blev kaldt Arraysfor vores bekvemmelighed, når vi arbejdede med arrays?

De gjorde det samme for samlinger. Java har en java.util.Collectionsklasse, der har en masse metoder, der er nyttige til at arbejde med samlinger. Her er blot de mest interessante:

Metoder Beskrivelse
addAll(colls, e1, e2, e3, ...)
Tilføjer elementerne e1, e2, e3, ... til collssamlingen
fill(list, obj)
Erstatter alle elementer i den beståede liste medobj
nCopies(n, obj)
Returnerer en liste over nkopier af objobjektet
replaceAll(list, oldVal, newVal)
Erstatter alle forekomster af oldValmed newVallistlisten
copy(dest, src)
Kopierer alle elementer fra srclisten til destlisten
reverse(list)
Vender listen om.
sort(list)
Sorterer listen i stigende rækkefølge
rotate(list, n)
Skifter elementerne i listlisten cyklisk efter nelementer
shuffle(list)
Blander tilfældigt elementerne på listen
min(colls)
Finder minimumselementet i collssamlingen
max(colls)
Finder det maksimale element i collssamlingen
frequency(colls, obj)
Bestemmer, hvor mange gange objelementet forekommer i collssamlingen
binarySearch(list, key)
Søger efter keyi en sorteret liste og returnerer det tilsvarende indeks.
disjoint(colls1, colls2)
Returnerer true, hvis samlingerne ikke har nogen elementer til fælles
Vigtig:

Mange af disse metoder bruger ikke klasserne ArrayList, HashSetog HashMapi sig selv, men med de tilsvarende grænseflader: Collection<T>, List<T>, Map<K, V>.

Dette er ikke et problem: Hvis en metode accepterer en List<T>, kan du altid give den en ArrayList<Integer>, men opgaveoperatøren arbejder ikke i den modsatte retning.


2. Oprettelse og ændring af samlinger

Collections.addAll(Collection<T> colls, T e1, T e2, T e3, ...)metode

Metoden addAll()tilføjer elementerne e1, e2, e3, ... til collssamlingen Et hvilket som helst antal elementer kan passeres.

Kode Konsoludgang
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)metode

Metoden fill()erstatter alle elementer i samlingen listmed objelementet.

Kode Konsoludgang
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)metode

Metoden nCopies()returnerer en liste over nkopier af objelementet. Bemærk, at den returnerede liste er uforanderlig, hvilket betyder, at du ikke kan ændre den! Du kan kun bruge det til at læse værdier:

Kode Beskrivelse
List<String> immutableList = Collections.nCopies(5, "Hello");

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

for(String s: list)
   System.out.println(s);
Opret en uforanderlig liste med 5 Hellostrenge
Opret en foranderlig listog fyld den med værdierne fra immutableListlisten.

Konsoludgang:
Hello
Hello
Hello
Hello
Hello

Collections.replaceAll (List<T> list, T oldValue, T newValue)metode

Metoden replaceAll()erstatter alle elementer i samlingen listlig oldValuemed newValue.

Kode Konsoludgang
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)metode

Metoden copy()kopierer alle elementer i srcsamlingen ind i destsamlingen.

Hvis destsamlingen starter længere end srcsamlingen, forbliver de resterende elementer i destsamlingen intakte.

Vigtig:
Samlingen destskal være mindst lige så lang som srcsamlingen (ellers IndexOutOfBoundsExceptionbliver der kastet et testamente).
Kode Konsoludgang
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. Elementernes rækkefølge

Collections.reverse(List<T> list)metode

Metoden reverse()vender om rækkefølgen af ​​elementerne i den beståede liste.

Kode Konsoludgang
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)metode

Metoden sort()sorterer den beståede liste i stigende rækkefølge.

Kode Konsoludgang
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)metode

Metoden rotate()flytter cyklisk elementerne i den beståede liste efter distancepositioner fremad.

Kode Konsoludgang
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)metode

Metoden shuffle()blander tilfældigt alle elementerne i den beståede liste. Resultatet er forskelligt hver gang.

Kode Konsoludgang
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. At finde elementer i samlinger

Collections.min(Collection<T> colls)metode

Metoden min()returnerer minimumselementet i samlingen.

Kode Konsoludgang
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)metode

Metoden max()returnerer det maksimale element i samlingen.

Kode Konsoludgang
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)metode

Metoden frequency()tæller antallet af gange elementet objforekommer i collssamlingen

Kode Konsoludgang
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)metode

Metoden binarySearch()søger efter objelementet i collssamlingen. Returnerer indekset for det fundne element. Returnerer et negativt tal, hvis elementet ikke findes.

Vigtig:
Inden metoden kaldes binarySearch(), skal samlingen sorteres (brug Collections.sort()).
Kode Konsoludgang
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)metode

Metoden disjoint()vender tilbage true, hvis de beståede samlinger ikke har nogen elementer til fælles.

Kode Konsoludgang
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

Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION