일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 클래스멤버
- 2진법의음수표현
- 자바
- random()
- 멤버필드
- 객체지향
- JAVA프로그래밍
- 자바프로그래밍
- 변수의초기화
- 멤버변수
- 객체지향언어
- 전역변수
- Math.random()
- 컴퓨터구조
- 멤버메소드
- 클래스
- 2의보수
- 1의보수
- random클래스
- 난수발생
- 난수
- 부호절댓값
- java
- 2진법음수
- new연산자
- 2진법음수표현
- 지역변수
- 멤버변수의초기화
- static
- 의사난수
- Today
- Total
주인장의 프로그래밍 개발 공부방
[Chapter 5 배열] 6-2. (심화) 객체 배열과 가변 배열 본문
이전의 객체 배열 설명이 길어진 관계로
두 편으로 나누어 작성합니다.
2. 가변 배열
지금까지 여러 배열에 대해서 알아봤는데 우리가 앞서 알아봤던 2차원 이상의 배열에서
조금 더 확장된 개념의 배열이 있다.
바로 가변 배열인데 의미 그대로 가변적인 크기의 배열을 뜻한다.
다시 말해, 각 배열의 요소마다 방크기를 임의대로 정할 수 있다는 뜻이다.
이게 무슨 소린가 싶겠지만 아래의 예시를 보면 쉽게 이해할 수 있을 것이다.
예시2)
String[][] strArr = new String[3][];
위의 예시2는 String[][] 타입의 2차원 배열에서 하나의 인덱스만 지정한 형태이다.
행렬로 비유하자면 행의 수만 지정한 상태인 것이다.
일반적인 2차원 배열의 형태라면 각 행마다 열의 수는 모두 동일하겠지만
가변 배열은 이름에 걸맞게 각 행마다 열의 수를 다르게 지정할 수 있는 것이다.
예시3)
String[][] strArr = new String[3][];
strArr[0] = new String[4];
strArr[1] = new String[1];
strArr[2] = new String[3];
위의 예시2와 같이 선언된 상태에서 예시3처럼
배열의 각 요소마다 각기 다른 크기의 배열로 지정할 수 있는 것이다.
마찬가지로 배열의 요소를 크기로 아래의 예시4와 같이 값을 바로 넣어 초기화하는 것도 가능하다.
예시4)
String[][] strArr = new String[3][];
strArr[0] = new String[] {"A", "BC", "DEF"};
strArr[1] = new String[] {"A"};
strArr[2] = new String[] {"A", "BC", "DEF", "GH", "I"};
조금 더 쉽게 보기 위해 구조를 그림으로 그려보면
그림2)
이러한 형태가 되는 것이다.
이렇게 사용할 수 있는 이유는 배열이라는 것도
주소를 참조하는 참조형 타입이기 때문에 가능한 것이다.
3. 마무리
객체 배열은 뭔가 달라 보일 수 있으나 배열의 요소가 객체 타입일 뿐 일반적인 배열과 다를 바가 없다.
선언과 초기화하는 형태도 동일하고 사용하는 방법도 동일하다.
대표적으로 우리가 많이 봐왔던 String타입의 배열의 경우
String[] strArr = new String[] {};
로 선언할 수 있고
strArr = new String[3];
와 같이 배열의 크기를 지정해 초기화하거나
strArr = new String[] {"A", "BC", "DEF"};
처럼 값을 직접 넣어 초기화할 수도 있다.
이를 조금 더 풀어보면
strArr = new String[] {new String("A"), new String("BC"), new String("DEF")};
의 형태로 초기화되는 것이기 때문에
객체 배열은 말그대로 객체를 배열의 요소로 가지는 것이다.
가변 배열은 2차원 이상 배열에서 사용할 수 있는데
일반적으로 요소마다 방크기가 동일한 것과 다르게
각 배열의 요소마다 방의 크기를 임의로 지정할 수 있는 것이다.
String[][] strArr = new String[3][];
처럼 첫 번째 인덱스의 크기만 지정하고
두 번째 인덱스의 크기는
strArr[0] = new String[3];
strArr[1] = new String[1];
strArr[2] = new String[4];
처럼 임의의 크기로 지정하는 것이 가능하다.
'프로그래밍 기본 지식 > Chapter 5 배열' 카테고리의 다른 글
[Chapter 5 배열] 6-1. (심화) 객체 배열과 가변 배열 (0) | 2019.09.03 |
---|---|
[Chapter 5 배열] 5. 2차원 배열의 사용 방법 (4) | 2019.08.27 |
[Chapter 5 배열] 4. 2차원 이상의 배열 (feat. String) (0) | 2019.08.27 |
[Chapter 5 배열] 3. 1차원 배열 사용 방법(저장, 출력) (0) | 2019.08.27 |
[Chapter 5 배열] 2. 배열의 구조 (feat. 1차원 배열) (0) | 2019.08.27 |