概要
例えば、配列にもListにも格納されてないintの値が3個以上あって、その中からMAXやMINを取得したい場合、どういうふうに書くのが良いでしょうか。Math.max関数を入れ子にしたり、一度Listに入れてStreamAPIのmax関数を使うとかもありだと思いますが、もう少し良い書き方ないかなと思い、今回メモ書きとして残しておきます。
対応案
- Find the max of 3 numbers in Java with different data typesのstackoverflowの記事に色々対応方法書いてありますが、可変引数でメソッド化して、その後にList化してmaxを取るやり方が個人的には一番スマートかなと感じました。
- 可変引数についてはこちらを参照してください。
実装サンプル
sample.java
import java.util.Arrays;
import java.util.Collections;
public class MaxTest {
public static void main(String[] args){
int test1 = 3;
int test2 = 4;
int test3 = 5;
System.out.println(getMax(test1, test2, test3));
}
private static int getMax(Integer... vals) {
return Collections.max(Arrays.asList(vals));
}
}