Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Java-Algorithmen

Java-Algorithmen

In diesem Tutorial lernen wir anhand von Beispielen verschiedene Algorithmen kennen, die vom Java Collections Framework bereitgestellt werden.

Das Java Collections Framework bietet verschiedene Algorithmen, die verwendet werden können, um in Datenstrukturen gespeicherte Elemente zu manipulieren.

Algorithmen in Java sind statische Methoden, die verwendet werden können, um verschiedene Operationen auf Sammlungen auszuführen.

Da Algorithmen auf verschiedene Sammlungen angewendet werden können, werden diese auch als generische Algorithmen bezeichnet .

Sehen wir uns die Implementierung verschiedener Methoden an, die im Collections-Framework verfügbar sind.


1. Sortieren mit sort()

Der sort() Die vom Collections-Framework bereitgestellte Methode wird zum Sortieren von Elementen verwendet. Zum Beispiel

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

    }
}

Ausgabe

Unsorted ArrayList: [4, 2, 3]
Sorted ArrayList: [2, 3, 4]

Hier erfolgt die Sortierung in natürlicher Reihenfolge (aufsteigende Reihenfolge). Wir können jedoch die Sortierreihenfolge der sort() anpassen Methode mit der Comparator-Schnittstelle .

Um mehr zu erfahren, besuchen Sie die Java-Sortierung.


2. Mischen mit shuffle()

Die shuffle() -Methode des Java Collections Framework wird verwendet, um jede Art von Ordnung zu zerstören, die in der Datenstruktur vorhanden ist. Es macht genau das Gegenteil der Sortierung. Zum Beispiel

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

    }
}

Ausgabe

Sorted ArrayList: [1, 2, 3]
ArrayList using shuffle: [2, 1, 3]

Wenn wir das Programm ausführen, wird der shuffle() Methode gibt eine zufällige Ausgabe zurück.

Der Mischalgorithmus wird hauptsächlich in Spielen verwendet, in denen wir eine zufällige Ausgabe wünschen.


3. Routinemäßige Datenmanipulation

In Java stellt das Sammlungs-Framework verschiedene Methoden bereit, die zum Manipulieren von Daten verwendet werden können.

Zum Beispiel

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

Ausgabe

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]

Hinweis :Beim Ausführen von copy() Methode sollten beide Listen die gleiche Größe haben.


4. Suchen mit binarySearch()

Die binarySearch() -Methode des Java Collections Framework sucht nach dem angegebenen Element. Es gibt die Position des Elements in den angegebenen Sammlungen zurück. Zum Beispiel

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

Ausgabe

The position of 3 is 2.

Hinweis :Die Sammlung sollte sortiert werden, bevor binarySearch() ausgeführt wird Methode.

Um mehr zu erfahren, besuchen Sie Java Binary Search.


5. Zusammensetzung

Zum Beispiel

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

Ausgabe

ArrayList1: [1, 2, 3, 2]
Count of 2: 2
ArrayList2: [5, 6]
Two lists are disjoint: true

6. Extremwerte finden

Die min() und max() Methoden des Java Collections Framework werden verwendet, um die minimalen bzw. maximalen Elemente zu finden. Zum Beispiel

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

Ausgabe

Minimum Element: 1
Maximum Element: 3

Java

  1. Java-Operatoren
  2. Java-Kommentare
  3. Java for-each-Schleife
  4. Java-Strings
  5. Java-Schnittstelle
  6. Anonyme Java-Klasse
  7. Java-Versuch-mit-Ressourcen
  8. Java-Anmerkungen
  9. Java-Assertionen
  10. So generieren Sie Zufallszahlen in Java