GitHub ID : soohyun-dev
윤수현의 개발 공간
GitHub ID : soohyun-dev
전체 방문자
오늘
어제
  • 분류 전체보기 (918)
    • 성장기록 (49)
      • 성장기록 (3)
      • 우아한테크코스 (16)
      • 프로젝트 (15)
      • TIL (14)
      • 테오의 스프린트 (1)
    • 프로그래밍언어 (88)
      • C언어 (14)
      • HTML\CSS (12)
      • JavaScript (7)
      • React (23)
      • Python (11)
      • JAVA (14)
      • TypeScript (6)
    • 알고리즘 공부 (736)
      • 코드업 - 파이썬 (108)
      • 백준 - 파이썬 (468)
      • 백준 - 자바스크립트 (125)
      • 프로그래머스 - 파이썬 (1)
      • 프로그래머스 - 자바스크립트 (34)
    • 책 리뷰 (9)
      • 프로그래밍 (3)
      • 독서 (6)
    • 전자기기 (1)
    • 일상, 일기 (18)
    • 기술 세미나 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩테스트
  • javascript
  • 프로그래머스자바스크립트
  • 코테
  • 독해
  • 코드업파이썬
  • PYTHON
  • 프로그래밍언어
  • 프로그래머스풀이
  • 영어독해
  • 백준
  • 백준파이썬
  • 자바스크립트
  • 프로그래머스
  • 프론트엔드
  • 영어
  • 코딩
  • 파이썬
  • 백준풀이
  • 코드업

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GitHub ID : soohyun-dev

윤수현의 개발 공간

자바 JAVA - 배열
프로그래밍언어/JAVA

자바 JAVA - 배열

2021. 8. 23. 13:26

자바 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
    '프로그래밍언어/JAVA' 카테고리의 다른 글
    • 자바 JAVA - 클래스, 은행 계좌
    • 자바 JAVA - 다차원 배열
    • 자바 JAVA - 반복문 (for 문), 구구단
    • 자바 JAVA - 반복문 (while 문), 구구단
    GitHub ID : soohyun-dev
    GitHub ID : soohyun-dev
    환영합니다!😊 이곳은 저의 개발에 관한 내용들을 정리하는 공간입니다. 알고리즘 풀이에도 관심이 많아요. 좋은 하루 되세요~! github : soohyun_dev

    티스토리툴바