작성
·
98
·
수정됨
0
[질문 내용]
여기에 질문 내용을 남겨주세요.
package study.array.ex;
import java.util.Scanner;
public class ArrayExRef6 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("입력받을 숫자의 개수를 입력하세요:");
int[] numbers = new int[scanner.nextInt()];
System.out.println(numbers.length +"개의 정수를 입력하세요:");
// 입력
for (int i = 0; i < numbers.length; i++) {
numbers[i] = scanner.nextInt();
}
int min, max;
min = max = numbers[0];
// 가장 작은 정수
for (int number : numbers) {
if(min > number) min = number;
}
// 가장 큰 정수
for (int number : numbers) {
if(max < number) max = number;
}
// 출력
System.out.println("가장 작은 정수: " + min);
System.out.println("가장 큰 정수: " + max);
}
}
선생님의 기존 코드와 비교했을때 이런 로직으로 짜는것은 가독성이나 효율성(비효율적인 반복문 사용)이 떨어지는 코드일까요??
답변 1
0
우연히 보게 되어 댓글 남깁니다!
추후 스트림을 과정을 배우게 되면
int numbers[] 값을 Arrays.stream으로 이용해서 스트림으로 한다음 해당 배열의 min, max값을 가져올 수 있습니다.
.getAsInt()는 int 변수에 담기 위해 사용했습니다.
int minValue = Arrays.stream(numbers).min().getAsInt();
int maxValue = Arrays.stream(numbers).max().getAsInt();
System.out.printf("가장 작은 정수: %d \n", minValue);
System.out.printf("가장 큰 정수: %d", maxValue);