Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Java

Java-algoritmen

Java-algoritmen

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

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.

Aangezien 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 collectiekader.


1. Sorteren met sort()

De sort() methode die door het collecties-framework wordt geboden, 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<Integer> 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 echter de sorteervolgorde van de sort() . aanpassen methode met behulp van de vergelijkingsinterface .

Ga voor meer informatie naar Java Sorting.


2. Shuffle gebruiken 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 sorteren. Bijvoorbeeld,

import java.util.ArrayList;
import java.util.Collections;

class Main {
    public static void main(String[] args) {

        // Creating an array list
        ArrayList<Integer> 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 using shuffle: [2, 1, 3]

Wanneer we het programma uitvoeren, wordt de shuffle() methode zal een willekeurige uitvoer retourneren.

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


3. Routinematige gegevensmanipulatie

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

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

Bijvoorbeeld,

import java.util.Collections;
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> 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<Integer> 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 Using swap(): [1, 2]
ArrayList2 using addALl(): [1, 2]
ArrayList1 using fill(): [0, 0]
ArrayList2 using copy(): [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-verzamelingsraamwerk zoekt naar het opgegeven element. Het retourneert de positie van het element in de opgegeven verzamelingen. Bijvoorbeeld,

import java.util.Collections;
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> 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

The position of 3 is 2.

Opmerking :De verzameling moet worden gesorteerd voordat de binarySearch() . wordt uitgevoerd methode.

Ga voor meer informatie naar Java Binary Search.


5. Compositie

  • frequency() - geeft de telling terug van het aantal keren 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<Integer> 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<Integer> 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]
Count of 2: 2
ArrayList2: [5, 6]
Two lists are disjoint: true

6. Extreme waarden vinden

De min() en max() methoden van het Java-verzamelingsraamwerk worden gebruikt om respectievelijk de minimum- en maximumelementen te vinden. Bijvoorbeeld,

import java.util.Collections;
import java.util.ArrayList;

class Main {
    public static void main(String[] args) {
        // Creating an ArrayList
        ArrayList<Integer> 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

Minimum Element: 1
Maximum Element: 3

Java

  1. Java-operators
  2. Java-opmerkingen
  3. Java if... else-instructie
  4. Java voor elke lus
  5. Java-strings
  6. Java-interface
  7. Java anonieme klasse
  8. Java proberen-met-bronnen
  9. Java-annotaties
  10. Java-beweringen
  11. Willekeurige getallen genereren in Java