데이터를 이동하라(변수 VS 배열의 관계)

Kyu·2020년 12월 18일
0

Java 공부기록

목록 보기
4/40

예를들어 변수 3개를 만들어본다고 가정하자 그러면 int a, b, c; 라고 선언하고 각 변수에 값을 넣어줄것이다.

만약에 합을 구해주는 sum이라는 메소드가 있다면 sum(int a, int b, int c){}라고 선언할 것이다. 근데 3개가 아니라 n개라면? 그래서 배열이 필요하다.

배열은 하나의 변수에 값을 여러개를 넣을 수 있다. 물론 변수에는 값을 하나만 넣을 수 있기 때문에 앞에서 배운것과 같이 객체를 생성해줘서 그 객체의 번지수를 가리키는 형태로 변수에 담아야한다.

1차원 배열과 2차원 배열

2차원 배열이 메모리 공간에 들어갈때, 상상하는 것처럼 정말 좌표찍듯이 네모난 모양으로 들어가는게 아니다. 실제로는 행을 기준으로 순차적으로 메모리공간에 들어간다. 머릿속에 그런 네모난 모양말고 1차원형태로 여러개가 들어가있다는걸로 기억해야한다.

그리고 2차원 배열의 길이 a.length;는 각 행을 하나로봐서 세어야한다. 예를들어 a = new int[3][4] 라면 길이는 12가 아니라 행을 기준으로 3이다. a[0]의 길이를 물어보면 4라고 대답할 수 있을것이다. a[1]과 a[2]도 마찬가지이다.

가변길이 배열

a = new int[3][4];라고 선언할 수도 있지만 a = new int[3][];이라고 선언해서 각 행의 길이가 다르게 만들 수도 있다 a[0] = new int[3]; a[1] = new int[4]; a[2] = new int[5] 와 같이 만들 수 있다.

가변길이 배열을 좀 더 와닿게 사용해볼 수 있는 예제는 백준에서 가변길이 배열을 이용해 별찍기를 해보면 될거같다.

profile
TIL 남기는 공간입니다

0개의 댓글