해당 페이지에서는 정수 배열 혹은 리스트에서 최소값과 최대값을 찾는 방법에 대해 공유합니다.
1) 배열에서 최소값, 최대값 찾고 값 반환받기
1. 반복문을 이용한 방법 : for, for ~ each문
for문을 이용한 방법
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
int max = numbers[0];
int min = numbers[0];
for (int i = 1; i < numbers.length; i++) {
if (numbers[i] > max) {
max = numbers[i];
}
if (numbers[i] < min) {
min = numbers[i];
}
}
System.out.println("min :: " + min + " max :: " + max);
}
}
for~each문을 이용한 방법
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
int max = Integer.MIN_VALUE;
int min = Integer.MAX_VALUE;
for (int number : numbers) {
if (number < min) min = number;
if (number > max) max = number;
}
System.out.println("min :: " + min + " max :: " + max);
}
}
2. Stream API를 이용한 방법
Arrays.stream().max() 함수를 이용한 방법
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
int max = Arrays.stream(numbers).max().getAsInt();
int min = Arrays.stream(numbers).min().getAsInt();
System.out.println("min :: " + min + " max :: " + max);
}
}
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
// 최대값 구하기
int max = Arrays.stream(numbers)
.max()
.orElse(0);
// 최소값 구하기
int min = Arrays.stream(numbers)
.min()
.orElse(0);
System.out.println("min :: " + min + " max :: " + max);
}
}
Arrays.stream().reduce() 함수를 이용한 방법
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
int max = Arrays.stream(numbers)
.reduce(Integer.MIN_VALUE, (a, b) -> a > b ? a : b);
int min = Arrays.stream(numbers)
.reduce(Integer.MAX_VALUE, (a, b) -> a < b ? a : b);
System.out.println("min :: " + min + " max :: " + max);
}
}
Arrays.stream().summaryStatistics() 함수를 이용한 방법
import java.util.Arrays;
import java.util.IntSummaryStatistics;
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 5, 3, 9, 2};
IntSummaryStatistics stats = Arrays.stream(numbers)
.summaryStatistics();
int max = stats.getMax();
int min = stats.getMin();
System.out.println("min :: " + min + " max :: " + max);
}
}
3. Math 함수를 이용한 방법
Math.min(), Math.max() 함수를 이용한 방법
int[] arr = {1, 2, 3, 4, 5};
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
for (int i : arr) {
min = Math.min(min, i);
max = Math.max(max, i);
}
System.out.println("최소값: " + min); // 1
System.out.println("최대값: " + max); // 5