-> 블로그 이전

[Java] 가변인자

2022. 2. 17. 20:09Language`/Java

가변인자 선언 :: '타입... 변수명'

- JDK1.5부터 메소드의 매개변수를 동적으로 지정해 줄 수 있게 되었다 :: 가변인자 가능

  • 파이썬의 *args와 비슷한 역할을 한다
public class test3{
    public static void main(String[] args) {
        System.out.println(getSum(1, 2, 3, 4, 5));
        System.out.println(getSum(1, 5, 10));
        System.out.println(getSum(new int[] {10, 20, 30, 40, 50}));
    }

    static int getSum(int... args){
        int sum = 0;
        for(int n : args)
            sum += n;
        return sum;
    }
}

--------------
15
16
150
  • 결국 가변인자는 내부적으로 배열을 이용해서 쓰는 기법이다
    • 따라서, 가변인자가 선언된 메소드를 호출할 때마다 배열이 새로 생성된다

>> 편리하지만 매번 배열을 생성하기 때문에 메모리 측면에서 비효율적이다