工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Java

Java アルゴリズム

Java アルゴリズム

このチュートリアルでは、例を使用して、Java コレクション フレームワークによって提供されるさまざまなアルゴリズムについて学習します。

Java コレクション フレームワークは、データ構造に格納された要素を操作するために使用できるさまざまなアルゴリズムを提供します。

Java のアルゴリズムは、コレクションに対してさまざまな操作を実行するために使用できる静的メソッドです。

アルゴリズムはさまざまなコレクションで使用できるため、ジェネリック アルゴリズムとも呼ばれます。 .

コレクション フレームワークで利用可能なさまざまなメソッドの実装を見てみましょう。


1. sort() を使用した並べ替え

sort() コレクション フレームワークによって提供されるメソッドは、要素の並べ替えに使用されます。たとえば、

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

    }
}

出力

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

ここでは、ソートは自然な順序 (昇順) で行われます。ただし、sort() のソート順はカスタマイズできます。 Comparator インターフェイスを使用する方法 .

詳細については、Java Sorting をご覧ください。


2. shuffle() を使用したシャッフル

shuffle() Java コレクション フレームワークのメソッドは、データ構造に存在するあらゆる種類の順序を破棄するために使用されます。並べ替えとは正反対のことを行います。たとえば、

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

    }
}

出力

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

プログラムを実行すると、 shuffle() メソッドはランダムな出力を返します。

シャッフル アルゴリズムは主に、ランダムな出力が必要なゲームで使用されます。


3.日常的なデータ操作

Java では、コレクション フレームワークは、データの操作に使用できるさまざまなメソッドを提供します。

たとえば、

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

出力

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]

注意 :copy() 実行中 両方のリストが同じサイズでなければなりません。


4. binarySearch() を使用した検索

binarySearch() Java コレクション フレームワークのメソッドは、指定された要素を検索します。指定されたコレクション内の要素の位置を返します。たとえば、

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

出力

The position of 3 is 2.

注意 :binarySearch() を実行する前にコレクションをソートする必要があります メソッド。

詳細については、Java Binary Search をご覧ください。


5.構成

たとえば、

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

出力

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

6.極端な値を見つける

min()max() Java コレクション フレームワークのメソッドを使用して、それぞれ最小要素と最大要素を見つけます。たとえば、

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

出力

Minimum Element: 1
Maximum Element: 3

Java

  1. Java オペレーター
  2. Java コメント
  3. Java if...else ステートメント
  4. Java for-each ループ
  5. Java 文字列
  6. Java インターフェイス
  7. Java匿名クラス
  8. Java try-with-resources
  9. Java アノテーション
  10. Java アサーション
  11. Java で乱数を生成する方法