可変長引数を用いた、最大値・最小値を求めるメソッド
可変長引数なるものがあることを(たった今)知りました。面白い書き方だったので、すぐにメモすることに。
import static java.lang.System.*; import java.util.*; public class Main { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { out.println(max(1,8,5,10,9)); out.println(min(9,5,7,1)); } public static int max(int... ar) { Arrays.sort(ar); return ar[ar.length-1]; } public static int min(int... ar) { Arrays.sort(ar); return ar[0]; } }
とこのように書けば、一つの型につき何個でも引数をとれるようなメソッドを作れる。
可変長引数には以下のような制約がある。
・一つのメソッドに一つだけ
・最後の引数でのみ使用できる
とここまで書いて、便利な機能だと感心したものの、競プロではあまり使い道はないかもしれない。3、4個の数字から最大値を求めるためにわざわざメソッドなど作っていては解答が遅くなるし、10個の数字から最大値を……となれば、配列を使えばよいからだ。