MENU

【Java】 最小値の求め方 3パターン

目次

はじめに

今回は、Javaで最小値を求める方法について解説したいと思います。
主に求め方は、3パターンに分類されます。

  1. 標準クラス (Mathクラス)のminメソッドを使う方法
  2. 標準クラス(ArrayListクラス)を使ってsortメソッドで求める方法
  3. 変数minに暫定の最小値を格納し、for文で1つ1つ比較していく方法

以下で、それぞれ詳しく見ていきましょう。

① 標準クラス (Mathクラス)のminメソッドを使う方法

ここで、一つ注意点
Javaの標準クラスに用意されているminメソッド2つの数字どうしの比較に限定されます。
詳しい解説は、こちらをチェック↓


サンプルコード
import java.util.*;

public class Main {
    public static void main(String[] args) {
        int num1 = 23;
        int num2 = 56;
        int min = Math.min(num1,num2);
        System.out.println(min);
    }
}
コードの実行結果

23

② 標準クラス(ArrayListクラス)を使ってsortメソッドで求める方法

Javaの標準ライブラリにはコレクションフレームワークがあり、配列では実現できない多くの機能があります。
その中の1つ、ArrayListクラスを使って3つ以上の数字を比較し、最小値を求めてみましょう。

例として、56, 34, 12, 78, 90のうち、最小値である12を出力するコードを考えてみましょう。


サンプルコード
import java.util.*;

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(56);
        list.add(34);
        list.add(12);
        list.add(78);
        list.add(90);
        // Collections.sort() でリストの要素を自然な順序(昇順)で並び替える
        Collections.sort(list);
        // 0番目の要素を出力
        System.out.println(list.get(0));
    }
}
コードの実行結果

12

③ 変数minに暫定の最小値を格納し、for文で1つ1つ比較していく方法

手順は以下のようなります。

  1. あらかじめ配列を作り、配列の要素の1番目で変数minを初期化
  2. その後、変数minに代入されている値と配列の要素同士の大小を比較
  3. 配列の要素の方が小さい場合、上書きして最小値として採用

例として、81, 72, 25, 36, 45のうち、最小値である25を出力するコードを考えてみましょう。


サンプルコード
public class Main {
    public static void main(String[] args) {
        int[] array = {81, 72, 25, 36, 45};
    // 配列の要素の1番目で変数minを初期化
        int min = array[0];
    // 配列の要素の方が小さい場合、上書きして最小値として採用
        for ( int i = 1; i < array.length; i++ ) {
            if (min > array[i]) min = array[i];
        }
        System.out.println(min);
    }
}
コードの実行結果

25

最後に

最後に応用して、①, ③を組み合わせて求めてみましょう。
③と同じ例で考えてみましょう。

サンプルコード
import java.util.*;

public class Main {
    public static void main(String[] args) {
        int[] array = {81, 72, 25, 36, 45};
        
        int min = array[0];
        for ( int i = 1; i < array.length; i++ ) {
            min = Math.min(min,array[i]);
        }
        System.out.println(min);
    }
}
コードの実行結果

25

いかがでしたでしょうか。同じようにして最大値も求められます。
ぜひ、上のサンプルコードを参考に最大値も求めてみて下さい。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次