目次
はじめに
今回は、Javaで最小値を求める方法について解説したいと思います。
主に求め方は、3パターンに分類されます。
- 標準クラス (Mathクラス)のminメソッドを使う方法
- 標準クラス(ArrayListクラス)を使ってsortメソッドで求める方法
- 変数minに暫定の最小値を格納し、for文で1つ1つ比較していく方法
以下で、それぞれ詳しく見ていきましょう。
① 標準クラス (Mathクラス)のminメソッドを使う方法
ここで、一つ注意点。
Javaの標準クラスに用意されているminメソッドは2つの数字どうしの比較に限定されます。
詳しい解説は、こちらをチェック↓
サンプルコード
import java.util.*;
public class Main {
public static void main(String[] args) {
int num1 = 23;
int num2 = 56;
int min = Math.min(num1,num2);
System.out.println(min);
}
}
コードの実行結果
23
② 標準クラス(ArrayListクラス)を使ってsortメソッドで求める方法
Javaの標準ライブラリにはコレクションフレームワークがあり、配列では実現できない多くの機能があります。
その中の1つ、ArrayListクラスを使って3つ以上の数字を比較し、最小値を求めてみましょう。
例として、56, 34, 12, 78, 90のうち、最小値である12を出力するコードを考えてみましょう。
サンプルコード
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Integer> list = new ArrayList<>();
list.add(56);
list.add(34);
list.add(12);
list.add(78);
list.add(90);
// Collections.sort() でリストの要素を自然な順序(昇順)で並び替える
Collections.sort(list);
// 0番目の要素を出力
System.out.println(list.get(0));
}
}
コードの実行結果
12
③ 変数minに暫定の最小値を格納し、for文で1つ1つ比較していく方法
手順は以下のようなります。
- あらかじめ配列を作り、配列の要素の1番目で変数minを初期化。
- その後、変数minに代入されている値と配列の要素同士の大小を比較。
- 配列の要素の方が小さい場合、上書きして最小値として採用。
例として、81, 72, 25, 36, 45のうち、最小値である25を出力するコードを考えてみましょう。
サンプルコード
public class Main {
public static void main(String[] args) {
int[] array = {81, 72, 25, 36, 45};
// 配列の要素の1番目で変数minを初期化
int min = array[0];
// 配列の要素の方が小さい場合、上書きして最小値として採用
for ( int i = 1; i < array.length; i++ ) {
if (min > array[i]) min = array[i];
}
System.out.println(min);
}
}
コードの実行結果
25
最後に
最後に応用して、①, ③を組み合わせて求めてみましょう。
③と同じ例で考えてみましょう。
サンプルコード
import java.util.*;
public class Main {
public static void main(String[] args) {
int[] array = {81, 72, 25, 36, 45};
int min = array[0];
for ( int i = 1; i < array.length; i++ ) {
min = Math.min(min,array[i]);
}
System.out.println(min);
}
}
コードの実行結果
25
いかがでしたでしょうか。同じようにして最大値も求められます。
ぜひ、上のサンプルコードを参考に最大値も求めてみて下さい。