Javaで小さな値や最小値を取得する方法:min

java min
  • このエントリーをはてなブックマークに追加
  • Pocket

Javaで2つの数を比較してどちらか小さい値を取得することや、最小値を求めることはよくある。

より小さい値を探すには、Mathクラスのminメソッドを使う。maxメソッドの対となるメソッドだ。

このページでは、Javaのminメソッドによる、「小さな値の取得」および「最小値の取得」についてお伝えしよう。参考にしてほしい。

Javaのどちらか小さな値の求め方

どちらか小さな値を求めるとは、負の無限大との距離がより短い値のことだ。(むしろわかりにくいかもしれないが。)

例えば、「100」と「-100」のどちらか小さな値といえば「-100」になる。

Javaでどちらか小さな値を求めるためにはminメソッドを利用する。

書き方の基本は簡単だ。

どちらか小さな値 = Math.min(対象となる数, 対象となる別の数)

Javaでの小さな値を求めるための書き方の詳細を確認していこう。

メソッドの型による違い

minメソッドの引数に指定したふたつの値のどちらか小さな値を求めるが、引数に指定できる値はdouble型・float型・int型・long型と種類がある。

double型

min(double a, double b)

戻り値の型

public static double

内容

ふたつのdouble値のうち、より小さな値を戻す。

これは、結果が負の無限大により近い値になるということだ。

もし引数が同じ値を持つならば、結果は同じ値になる。

もし、どちらかの値がNaNであれば、結果はNaNになる。

数値比較演算値とは違って、このメソッドは厳密に負のゼロが正のゼロよりも小さいとみなす。

もし、ひとつの引数が正のゼロで、他の引数が負のゼロならば、

結果は負のゼロになる。

 

引数:a-引数, b-別の引数

戻り値:aとbのうち、より小さな値

float型

min(float a, float b)

戻り値の型

public static float

内容

ふたつのfloat値のうち、より小さな値を戻す。

 

後はdouble型と同じだ。

int型

min(int a, int b)

戻り値の型

public static int

内容

ふたつのint値のうち、より小さな値を戻す。

これは、結果がInteger.MIN_VALUEにより近い引数になるということだ。

もし、引数が同じ値を持つならば、結果は同じ値になる。

 

引数:a - 引数, b - 別の引数

戻り値:aとbのうち、より小さな値

long型

min(long a, long b)

戻り値の型

public static long

内容

ふたつのlong値のうち、より小さな値を戻す。

これは、結果がLong.MIN_VALUEにより近い引数になるということだ。

 

後はint型と同じだ。

Javaでどちらか小さな値を求めるサンプルプログラム

それでは実際にサンプルプログラムを確認してみよう。

double型のサンプルコード

public class MinDouble {
    public static void main(String[] args) {
        double positiveValue        = 123.45;//[1]
        double positiveZero         = 0.0;//[2]
        double negativeZero         = - 0.0;//[3]
        double negativeValue        = -123.45;//[4]
        double nanValue             = Double.NaN;//[5]

        System.out.println("[6] 正のゼロ vs 正の値 : " + positiveValue + "-> "+ Math.min(positiveZero, positiveValue));
        System.out.println("[7] 正のゼロ vs 正のゼロ: " + positiveZero + "-> "+ Math.min(positiveZero, positiveZero));
        System.out.println("[8] 正のゼロ vs 負のゼロ: " + negativeZero + "-> " + Math.min(positiveZero, negativeZero));
        System.out.println("[9] 正のゼロ vs 負の値: " + negativeValue + "-> "  + Math.min(positiveZero, negativeValue));
        System.out.println("[10] 正のゼロ vs NaN(数値でない値) : " + nanValue + " -> "  + Math.min(positiveZero, nanValue));
        }
}

実行結果

[6] 正のゼロ vs 正の値 : 123.45 -> 0.0
[7] 正のゼロ vs 正のゼロ: 0.0 -> 0.0
[8] 正のゼロ vs 負のゼロ: -0.0 -> -0.0
[9] 正のゼロ vs 負の値: -123.45 -> -123.45
[10] 正のゼロ vs NaN(数値でない値) : NaN -> NaN

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

このプログラムは、扱うことのできる様々な値を持つ変数の比較からより小さな値を求めいている。

  • [1] 正の値を変数:positiveValueに設定する。
  • [2] 正のゼロを変数:positiveZeroに設定する。
  • [3] 負のゼロを変数:negativeZeroに設定する。
  • [4] 負の値を変数:negativeValueに設定する。
  • [5] NaNを変数:nanValueに設定する。
  • [6] 正のゼロとpositiveValueのどちらか小さな値を表示する。
  • [7] 正のゼロとnegativeZeroのどちらか小さな値を表示する。
  • [8] 正のゼロとpositiveInfinitのどちらか小さな値を表示する。
  • [9] 正のゼロとnegativeValueのどちらか小さな値を表示する。
  • [10] 正のゼロとnanValueを引数とするmin()メソッドの戻り値を表示する。

intのサンプルコード

public class MinInt {
    public static void main(String[] args) {
        int positiveValue        = 123;//[1]
        int negativeValue        = -123;//[2]

        System.out.println("[3] 異なる値 : "+ Math.min(positiveValue, negativeValue));
        System.out.println("[4] 同じ値: " + Math.min(negativeValue, negativeValue));
    }
}

実行結果

[3] 異なる値 : -123
[4] 同じ値: -123

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

このプログラムは、異なる値を持つ変数の比較と同じ値を持つ変数の比較からより小さな値を求めている。

  • [1] 正の値を変数:positiveValueに設定する。
  • [2] 負の値を変数:negativeValueに設定する。
  • [3] 異なる値、positiveValueとnegativeValueのどちらか小さな値を表示する。
  • [4] 同じ値、negativeValueとnegativeValueのどちらか小さな値を表示する。

Javaで最小値の求め方

minメソッドを使えば最小値も簡単に出すことができる。サンプルコードを確認してみよう。

サンプルコード

public class FindMinimumValue {
    public static void main(String[] args) {
        int values[] = {3, 2, 5, 0, -3};//[1]
        int min      = values[0];//[2]

        for (int index = 1; index < values.length; index ++) {//[3]
            min = Math.min(min, values[index]);//[4]
        }
        System.out.println("[5] 最小値 : "+ min);
    }
}

実行結果

[5] 最小値 : -3

サンプルプログラムの説明

それでは簡単にプログラムの解説をしてゆこう。

このプログラムは、配列に設定したいくつかの数値の中からminメソッドを使って最小値を探している。

  • [1] 配列:valuesに数値を設定する。
  • [2] minを定義し、初期値に配列:valuesの最初の配列の値を設定する。
  • [3] ループにより変数:indexを配列の2番目から最後までインクリメントする。
  • [4] minメソッドを使って、変数:minとindexが示す配列のより小さいほうの値をminに設定する。
  • [5] 最小値として変数:minを表示する。

まとめ

このページではJavaの「小さい値の求め方」「最小値の求め方」についてお伝えした。minメソッドを使えば簡単に出すことができることがおわかりいただけただろう。

minメソッド、使ってみていただければと思う。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できます。

IT講師に興味はありませんか?

・「今までIT講師をやってきたが、更に多くの講義を行いたい」

・「エンジニアとしてやってきたが講師業に魅力を感じている」

・「講師として活躍するためにベースとなる知識を知りたい」

・「様々な分野や言語の講師にチャレンジしてみたい」


という方はぜひIT講師募集のページをご覧ください。


リスキルテクノロジーでは「受講している方々にITを好きになってもらう」ことを目標に、同じ目標に向かって歩んで行ける講師の方を常に探しています。


システム開発やインフラ構築などのエンジニアリング経験を活かし、新入社員などの未経験者や経験の浅い初学者の方々に対してITトレーニングを行っていただくことになります。


テキストやカリキュラムは事前に用意されており、それらを元に講義を進めていくため、IT講師をはじめて実施する方でも安心してトレーニングを実施できます。


IT講師募集のページを見る

SNSでもご購読できます。

コメントを残す

*

未経験からの育成制度も充実
IT講師に興味はありませんか?

リスキルテクノロジーでIT講師の積極募集を開始! 経験・未経験問わずご応募可能。育成制度で講師スキル向上も目指せます

IT講師に応募する