강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

2025 개발자 취뽀님의 프로필 이미지
2025 개발자 취뽀

작성한 질문수

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

문제와 풀이2

ArrayExRef6 코드 질문있습니다.

작성

·

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);
2025 개발자 취뽀님의 프로필 이미지
2025 개발자 취뽀

작성한 질문수

질문하기