Java Tips | 基本ユーティリティ:Math.max()

Web APP Java
スポンサーリンク
スポンサーリンク

Math.max()とは何か

Javaで業務システムを開発していると、複数の数値の中から「最も大きい値」を取得したい場面が頻繁に登場します。

例えば、

  • 売上比較
  • 最高点の取得
  • 最大在庫数の確認
  • アクセス数ランキング
  • 最高気温の取得
  • 最大許容量の判定

などです。

そのような場面で利用されるのが Math.max() です。

Math.max(値1, 値2)
Java

このメソッドは、2つの値を比較して大きい方の値を返します。

JavaのMathクラスに含まれる基本メソッドであり、実務でも非常に利用頻度が高いユーティリティです。

まずは「最大値」を理解しよう

最大値とは、比較対象の中で最も大きな値のことです。

例えば次の数字があるとします。


10
50
30
20

この中で最大値は50です。

Math.max()は、そのような「大きい方の値」を簡単に取得できます。

Math.max()の基本構文

最もシンプルな例を見てみましょう。

// 2つの値
int a = 10;
int b = 20;

// 大きい方を取得
int result =
        Math.max(a, b);

// 結果表示
System.out.println(result);
Java

実行結果

20

10と20を比較し、大きい方の20が返されています。

ステップバイステップで理解する

ステップ1:比較する値を準備する

// 売上
int sales1 = 150;
int sales2 = 200;
Java

2つの値が存在しています。

ステップ2:Math.max()を実行する

// 最大値取得
int maxSales =
        Math.max(
                sales1,
                sales2
        );
Java

ステップ3:結果を確認する

// 出力
System.out.println(maxSales);
Java

実行結果

200

大きい方の値が取得できました。

同じ値の場合はどうなるのか

比較対象が同じ値でも問題ありません。

// 同じ値
int a = 100;
int b = 100;

// 最大値取得
int result =
        Math.max(a, b);

System.out.println(result);
Java

実行結果

100

同じ値なので、その値が返されます。

マイナス値でも利用できる

Math.max()は負の値にも対応しています。

// マイナス値
int a = -50;
int b = -10;

// 最大値取得
int result =
        Math.max(a, b);

System.out.println(result);
Java

実行結果

-10

マイナスの世界では、-10の方が大きい値になります。

対応しているデータ型

Math.max()は複数の数値型に対応しています。

int型

// int型
int result =
        Math.max(10, 20);
Java

long型

// long型
long result =
        Math.max(
                100L,
                200L
        );
Java

float型

// float型
float result =
        Math.max(
                1.5f,
                2.5f
        );
Java

double型

// double型
double result =
        Math.max(
                10.5,
                20.5
        );
Java

実務ではint型、long型、double型がよく利用されます。

実務でよくある利用例① 売上比較

業務システムでは非常によく登場します。

// 店舗A売上
int shopA = 100000;

// 店舗B売上
int shopB = 120000;

// 高い方を取得
int maxSales =
        Math.max(
                shopA,
                shopB
        );

// 結果表示
System.out.println(maxSales);
Java

実行結果

120000

実務でよくある利用例② 最高点の取得

// テスト点数
int score1 = 85;
int score2 = 92;

// 高得点取得
int highScore =
        Math.max(
                score1,
                score2
        );

System.out.println(highScore);
Java

実行結果

92

実務でよくある利用例③ 在庫数判定

// 現在在庫
int currentStock = 50;

// 最低保証在庫
int minimumStock = 100;

// 大きい方を採用
int stock =
        Math.max(
                currentStock,
                minimumStock
        );
Java

在庫管理システムなどで活用されます。

3つ以上の値を比較したい場合

Math.max()は基本的に2つの値を比較します。

3つ以上の場合はネストして利用します。

// 3つの値
int a = 10;
int b = 50;
int c = 30;

// 最大値取得
int result =
        Math.max(
                Math.max(a, b),
                c
        );

System.out.println(result);
Java

実行結果

50

多くの実務システムで利用されるテクニックです。

配列の最大値を求める

実務では配列やリストから最大値を求めるケースもあります。

// 点数一覧
int[] scores =
        {80, 95, 70, 88};

// 最大値
int max = scores[0];

// ループ
for (int score : scores) {

    // 大きい方を保持
    max = Math.max(max, score);

}

System.out.println(max);
Java

実行結果

95

最大値探索の定番パターンです。

内部でどのように動いているのか

イメージとしては次のような処理です。

// イメージコード
if (a >= b) {

    return a;

}

return b;
Java

大きい方を返しているだけなので非常にシンプルです。

実務で特によく使うパターン

最低値保証の実装です。

// 入力値
int point = -10;

// 0未満禁止
point =
        Math.max(
                point,
                0
        );

System.out.println(point);
Java

実行結果

0

負の値を許可しない場合によく使われます。

入力値補正やバリデーションで頻出します。

Math.max()とif文の比較

同じ処理をif文で書くと次のようになります。

// if版
int result;

if (a > b) {

    result = a;

} else {

    result = b;

}
Java

Math.max()なら一行です。

// Math版
int result =
        Math.max(a, b);
Java

コードが短くなり可読性も向上します。

Math.min()との違い

よくセットで登場するメソッドです。

Math.max()

// 大きい方
Math.max(10, 20);
Java

結果

20

Math.min()

// 小さい方
Math.min(10, 20);
Java

結果

10

最大値と最小値で用途が異なります。

実務で使えるテンプレート集

最大値取得テンプレート

// 大きい方取得
int max =
        Math.max(a, b);
Java

最低値保証テンプレート

// 0未満禁止
value =
        Math.max(
                value,
                0
        );
Java

最大売上取得テンプレート

// 売上比較
double maxSales =
        Math.max(
                sales1,
                sales2
        );
Java

配列最大値テンプレート

// 最大値探索
for (int value : values) {

    max = Math.max(
            max,
            value
    );

}
Java

情報セキュリティの観点から見る重要性

Math.max()自体はセキュリティ機能ではありません。

しかし入力値の制限や閾値管理では非常に重要な役割を持ちます。

例えば、

  • 最低金額保証
  • 負数入力防止
  • リソース制限管理
  • アクセス制限閾値
  • 監視システムの警告値管理

などです。

不正な値や異常値の影響を軽減するためにも、適切な下限・上限制御が重要です。

Math.max()はその実装で頻繁に利用されます。

初心者が覚えておくべき重要ポイント

  • 2つの値のうち大きい方を返す
  • int・long・float・doubleに対応している
  • 最大値取得に利用できる
  • 最低保証値の実装でよく使われる
  • if文より簡潔に書ける
  • 配列最大値探索に利用できる
  • Math.min()とセットで覚えると便利である

まとめ

Math.max()は、2つの値の中から大きい方を返すJava標準メソッドです。

  • 最大値を簡単に取得できる
  • 数値比較を簡潔に記述できる
  • 売上比較やランキング処理で活躍する
  • 最低保証値の実装に便利である
  • if文を減らして可読性を向上できる
  • 配列やリストの最大値探索でも利用される
  • Java開発者が必ず覚えておきたい数学系ユーティリティである

特に業務システムでは、「どちらが大きいか」「最低限どの値を保証するか」という判断が頻繁に行われます。Math.max()を活用することで、シンプルで読みやすく、保守しやすいコードを書けるようになります。また、Math.min()やMath.abs()と組み合わせることで、より柔軟な数値処理を実装できるようになります。

タイトルとURLをコピーしました