자바 JAVA - 배열
변수에다가 여러 값들을 담을 수 있는 배열에 대해 알아보자.
5개의 요소를 가진 배열을 만들려면 어떻게 해야할까
1. 배열을 선언후, 배열 생성.
2. 배열을 선언과 동시에 생성.
3. 직접 요소를 정해 생성.
3번 은 배열의 각 인덱스에 수를 정해주면서 생성하지만, 1번, 2번은 아니다.
그러면 각 인덱스에 원하는 값을 넣어주려면 어떻게 해야할까?
이렇게 배열 생성후에 직접 넣어주면 된다.
( 참고로 배열 순서는 0번째 부터이다!!! )
---------------------------------------------------------------------------------------------------------------------
배열을 출력하려면?
이렇게 출력하면 될까??
NO.
이렇게 배열만 출력시 아래와 같이
배열 요소 값이 아닌 그 배열이 담겨있는 주소값을 출력하게 된다.
각 배열의 요소 값들을 출력하려면,
이렇게 원하는 배열의 인덱스 값을 넣어준 뒤 출력을 해야한다.
출력해보면,
이와같이 잘 출력되는 것을 확인할 수 있다.
앨리어싱 (Aliasing)
배열을 다른 배열 변수로 완전히 옮기는 것을 앨리어싱 이라고 한다.
어떻게 사용할까?
ex) 배열 1에 있는요소들을 배열 2로 옮겨보자.
이렇게 선언해주면 arr1 배열이 arr2 배열과 같아지게 된다.
이렇게 출력해주면,
이렇게 arr1의 요소들과 같이 출력된다.
여기서 알아야 할 점!
이렇게 두 배열을 출력하면 서로 다른 값이 나올까?
아니다.
서로 같은 값이 나온다.
왜??
이유는 int [] arr1 = arr2; 을 선언하게 되면 arr1의 주소를 arr2 도 같이 가리키게 되는 것이다.
그래서 이걸 앨리어싱 (Aliasing) 이라 칭하는 것이다.
(Alias 는 가명을 뜻한다.)
arr2 를 통해 호출하는 것은 arr1 주소에서 뽑아오는 것이다.
그렇다면 arr2 만의 값을 갖게하려면 어떻게 해야할까?
.clone() 을 사용하면 된다.
이렇게 복사를 받고싶은 변수에 클론코드를 작성해주면, 그 값이 전달된다.
출력해보면 똑같이 출력이 된다.
앨리어싱과의 차이점은 이 두 배열 변수는 서로 완전히 다른 것이라는 것이다.
각 주소를 출력해보면,
이렇게 서로 다른 주소를 가르키고 있다는걸 알 수 있다.
실습
문제) 20자리의 배열을 선언한뒤, 각 자리에 1, 2, 3, 4, 5 ... 20 의 숫자를 지정해서 넣어줘라.
ans)
이 문제를 해결하기 위해선 for 문을 활용하면 좋다.
이렇게 배열을 20자리 선언해준뒤,
for 문을 그 자릿수만큼 반복시켜주면된다.
( 배열의 자릿수 번호는 0번부터 시작하기 때문에 int i = 0 으로 초기화시켜줘야한다. int i = 1 이 아니다.)
숫자들이 잘 들어갔는지 출력을 해보면,
잘 들어간 것을 확인할 수 있다.
'프로그래밍언어 > JAVA' 카테고리의 다른 글
자바 JAVA - 클래스, 은행 계좌 (0) | 2021.08.26 |
---|---|
자바 JAVA - 다차원 배열 (2) | 2021.08.24 |
자바 JAVA - 반복문 (for 문), 구구단 (0) | 2021.08.21 |
자바 JAVA - 반복문 (while 문), 구구단 (0) | 2021.08.21 |
자바 JAVA - 반복문 (switch 문) (0) | 2021.08.20 |