Java algoritmi

Š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ību
  • fill() - aizstāt katru kolekcijas elementu ar norādīto vērtību
  • copy() - izveido elementu kopiju no norādītā avota līdz galamērķim
  • swap() - 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ā skaitu
  • disjoint() - 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 

Interesanti raksti...