Šajā apmācībā mēs ar piemēriem uzzināsim dažādus algoritmus, ko nodrošina Java kolekciju sistēma.
Java kolekciju sistēma nodrošina dažādus algoritmus, kurus var izmantot, lai manipulētu ar datu struktūrās saglabātiem elementiem.
Java algoritmi ir statiskas metodes, kuras var izmantot, lai veiktu dažādas operācijas kolekcijās.
Tā kā algoritmus var izmantot dažādās kolekcijās, tos sauc arī par vispārīgiem algoritmiem .
Apskatīsim dažādu metožu ieviešanu, kas pieejamas kolekciju sistēmā.
1. Šķirošana, izmantojot sort ()
sort()
Ar kolekcijas ietvaros sniedza metode tiek izmantota, lai kārtotu elementiem. Piemēram,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(4); numbers.add(2); numbers.add(3); System.out.println("Unsorted ArrayList: " + numbers); // Using the sort() method Collections.sort(numbers); System.out.println("Sorted ArrayList: " + numbers); ) )
Rezultāts
Nesakārtots masīvu saraksts: (4, 2, 3) sakārtots masīvu saraksts: (2, 3, 4)
Šeit šķirošana notiek dabiskā secībā (augošā secībā). Tomēr mēs varam pielāgot sort()
metodes šķirošanas secību, izmantojot Comparator interfeisu.
Lai uzzinātu vairāk, apmeklējiet Java šķirošanu.
2. Jaukšana, izmantojot sajaukšanu ()
shuffle()
Java kolekcijas ietvaros metode tiek izmantota, lai iznīcinātu jebkādu pasūtījumu, kas atrodas datu struktūras. Tas notiek tieši pretēji šķirošanai. Piemēram,
import java.util.ArrayList; import java.util.Collections; class Main ( public static void main(String() args) ( // Creating an array list ArrayList numbers = new ArrayList(); // Add elements numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("Sorted ArrayList: " + numbers); // Using the shuffle() method Collections.shuffle(numbers); System.out.println("ArrayList using shuffle: " + numbers); ) )
Rezultāts
Kārtots ArrayList: (1, 2, 3) ArrayList, izmantojot sajaukšanu: (2, 1, 3)
Kad mēs palaidīsim programmu, shuffle()
metode atgriezīs nejaušu rezultātu.
Jaukšanas algoritmu galvenokārt izmanto spēlēs, kur mēs vēlamies izlases rezultātu.
3. Parastā datu apstrāde
Java kolekciju sistēma nodrošina dažādas metodes, kuras var izmantot, lai manipulētu ar datiem.
reverse()
- maina elementu secībufill()
- aizstāt katru kolekcijas elementu ar norādīto vērtībucopy()
- izveido elementu kopiju no norādītā avota līdz galamērķimswap()
- maina divu elementu pozīciju kolekcijāaddAll()
- pievieno visus kolekcijas elementus citai kolekcijai
Piemēram,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); System.out.println("ArrayList1: " + numbers); // Using reverse() Collections.reverse(numbers); System.out.println("Reversed ArrayList1: " + numbers); // Using swap() Collections.swap(numbers, 0, 1); System.out.println("ArrayList1 using swap(): " + numbers); ArrayList newNumbers = new ArrayList(); // Using addAll newNumbers.addAll(numbers); System.out.println("ArrayList2 using addAll(): " + newNumbers); // Using fill() Collections.fill(numbers, 0); System.out.println("ArrayList1 using fill(): " + numbers); // Using copy() Collections.copy(newNumbers, numbers); System.out.println("ArrayList2 using copy(): " + newNumbers); ) )
Rezultāts
ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 Izmantojot swap (): (1, 2) ArrayList2, izmantojot addALl (): (1, 2) ArrayList1, izmantojot fill (): (0, 0) ArrayList2, izmantojot kopija (): (0, 0)
Piezīme : Veicot copy()
metodi, abiem sarakstiem jābūt vienāda lieluma.
4. Meklēšana, izmantojot bināro meklēšanu ()
binarySearch()
No Java kolekcijas ietvaros meklē norādīto elementu metodi. Tas atgriež elementa pozīciju norādītajās kolekcijās. Piemēram,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using binarySearch() int pos = Collections.binarySearch(numbers, 3); System.out.println("The position of 3 is " + pos); ) )
Rezultāts
3 pozīcija ir 2.
Piezīme : Pirms binarySearch()
metodes veikšanas kolekcija ir jāšķiro .
Lai uzzinātu vairāk, apmeklējiet Java bināro meklēšanu.
5. Sastāvs
frequency()
- atgriež elementu klātbūtnes kolekcijā skaitudisjoint()
- pārbauda, vai divās kolekcijās ir kāds kopīgs elements
Piemēram,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); numbers.add(2); System.out.println("ArrayList1: " + numbers); int count = Collections.frequency(numbers, 2); System.out.println("Count of 2: " + count); ArrayList newNumbers = new ArrayList(); newNumbers.add(5); newNumbers.add(6); System.out.println("ArrayList2: " + newNumbers); boolean value = Collections.disjoint(numbers, newNumbers); System.out.println("Two lists are disjoint: " + value); ) )
Rezultāts
ArrayList1: (1, 2, 3, 2) 2: 2 skaits ArrayList2: (5, 6) Divi saraksti nav vienoti: patiess
6. Galējo vērtību atrašana
Par min()
un max()
metodes Java kolekcijas ietvaros tiek izmantoti, lai atrastu minimālo un maksimālo elementus, attiecīgi. Piemēram,
import java.util.Collections; import java.util.ArrayList; class Main ( public static void main(String() args) ( // Creating an ArrayList ArrayList numbers = new ArrayList(); numbers.add(1); numbers.add(2); numbers.add(3); // Using min() int min = Collections.min(numbers); System.out.println("Minimum Element: " + min); // Using max() int max = Collections.max(numbers); System.out.println("Maximum Element: " + max); ) )
Rezultāts
Minimālais elements: 1 Maksimālais elements: 3