さっそくですが、最大と最小。
Javaでは、Math.max() , Math.min() で最大と最小を求めることができます。
ところが、どちらも2つしか引数がありません。
つまり、2つしか値を比べられないってことです。
ふつーに考えれば、2つに限らず複数の値から最大と最小を求めたいものです。
というわけで、ふつーの使い方にはあまり向かない気がします。
Math.min() , Math.max() の使い道のサンプル
Math.min() , Math.max()を使って、下限:0、上限:100に値を調整します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | public class MinMaxTest { public static void main(String[] args) { //120を、0~100に調整する print(120, 0 ,100); //75を、0~100に調整する print(75, 0 ,100); //-100を、0~100に調整する print(-100, 0 ,100); } private static int setLimit(int val,int min,int max) { //上限・下限の範囲に収める return Math.min(Math.max(val,min),max); } private static void print(int fromVal, int min, int max) { int toVal = setLimit(fromVal, min, max); System.out.println("from:" + fromVal + " min:" + min + " max:" + max + " -> to:" + toVal); } } |
実行結果
3つの値を下限:0、上限:100に調整。
元の値、下限、上限、調整した値が出力されます。
1 2 3 | from:120 min:0 max:100 -> to:100 from:75 min:0 max:100 -> to:75 from:-100 min:0 max:100 -> to:0 |
サンプルの解説
Mathクラスのminやmaxを使った上限値と下限値の設定でした。
例えば、ボリューム設定のように0%~100%の間だけにしたい場合などですね。
先に書いてしまったので、あまり書くことがないのですがw
これらのメソッドは、オーバーロードでいくつかのデータ型をサポートしています。
メジャーなプリミティブ型だけにはなりますが、こんな感じの用途であれば、使いやすいですね。