Java-algoritmen

In deze zelfstudie leren we met behulp van voorbeelden over verschillende algoritmen die door het Java-verzamelingsraamwerk worden geleverd.

Het Java-verzamelingsraamwerk biedt verschillende algoritmen die kunnen worden gebruikt om elementen te manipuleren die zijn opgeslagen in gegevensstructuren.

Algoritmen in Java zijn statische methoden die kunnen worden gebruikt om verschillende bewerkingen op verzamelingen uit te voeren.

Omdat algoritmen op verschillende collecties kunnen worden gebruikt, worden deze ook wel generieke algoritmen genoemd .

Laten we eens kijken naar de implementatie van verschillende methoden die beschikbaar zijn in het raamwerk voor collecties.

1. Sorteren met sort ()

De sort()methode die wordt geboden door het verzamelingsraamwerk wordt gebruikt om elementen te sorteren. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Unsorted ArrayList: (4, 2, 3) Sorted ArrayList: (2, 3, 4) 

Hier vindt de sortering plaats in natuurlijke volgorde (oplopende volgorde). We kunnen de sorteervolgorde van de sort()methode echter aanpassen met behulp van de vergelijkingsinterface.

Bezoek Java Sorting voor meer informatie.

2. Shuffelen met shuffle ()

De shuffle()methode van het Java-verzamelingsraamwerk wordt gebruikt om elke vorm van orde in de gegevensstructuur te vernietigen. Het doet precies het tegenovergestelde van het sorteren. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Sorted ArrayList: (1, 2, 3) ArrayList met shuffle: (2, 1, 3) 

Wanneer we het programma uitvoeren, shuffle()retourneert de methode een willekeurige uitvoer.

Het shuffling-algoritme wordt voornamelijk gebruikt in games waar we willekeurige uitvoer willen.

3. Routinematige gegevensmanipulatie

In Java biedt het verzamelingsraamwerk verschillende methoden die kunnen worden gebruikt om gegevens te manipuleren.

  • reverse() - keert de volgorde van elementen om
  • fill() - vervang elk element in een verzameling met de opgegeven waarde
  • copy() - maakt een kopie van elementen van de opgegeven bron naar de bestemming
  • swap() - wisselt de positie van twee elementen in een collectie
  • addAll() - voegt alle elementen van een collectie toe aan een andere collectie

Bijvoorbeeld,

 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); ) ) 

Uitvoer

 ArrayList1: (1, 2) Reversed ArrayList1: (2, 1) ArrayList1 met swap (): (1, 2) ArrayList2 met addALl (): (1, 2) ArrayList1 met fill (): (0, 0) ArrayList2 met kopiëren (): (0, 0) 

Opmerking : tijdens het uitvoeren van de copy()methode moeten beide lijsten even groot zijn.

4. Zoeken met binarySearch ()

De binarySearch()methode van het Java Collections-framework zoekt naar het opgegeven element. Het geeft de positie van het element in de opgegeven verzamelingen terug. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 De positie van 3 is 2. 

Opmerking : de verzameling moet worden gesorteerd voordat u de binarySearch()methode uitvoert .

Ga voor meer informatie naar Java Binary Search.

5. Samenstelling

  • frequency() - geeft het aantal keren terug dat een element in de verzameling aanwezig is
  • disjoint() - controleert of twee collecties een gemeenschappelijk element bevatten

Bijvoorbeeld,

 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); ) ) 

Uitvoer

 ArrayList1: (1, 2, 3, 2) Aantal 2: 2 ArrayList2: (5, 6) Twee lijsten zijn disjunct: true 

6. Extreme waarden zoeken

De min()en max()werkwijzen van de Java collecties framework worden gebruikt om het minimum en maximum elementen vindt respectievelijk. Bijvoorbeeld,

 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); ) ) 

Uitvoer

 Minimaal element: 1 Maximaal element: 3 

Interessante artikelen...