일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- Button
- Array
- IntelliJ
- input
- Eclipse
- 자바
- windows
- table
- 이탈리아
- 이클립스
- list
- string
- 인텔리제이
- Java
- 자바스크립트
- 배열
- Files
- 테이블
- Visual Studio Code
- json
- date
- 문자열
- Maven
- js
- javascript
- CSS
- vscode
- CMD
- html
- ArrayList
- Today
- Total
어제 오늘 내일
[Java] 가변 길이 배열 (Jagged Array) 생성, 개수 구하기 본문
가변 길이 배열(Jagged Array)은,
보통 배열 안의 배열(Array in Array)라고 합니다.
2차원 배열 이상의 다차원 배열을 생성할 때,
배열의 마지막 차수의 크기를 지정하지 않고, 가변적으로 생성할 수 있습니다.
위 그림은,
2차원 가변 길이 배열의 한 예시입니다.
위 예제는 arr[3][] 이라고 정의하고,
마지막 차수의 길이를 지정하지 않습니다.
위 그림을 보면,
arr변수는 3개의 원소를 가지는 1차원 배열을 가리키고 있습니다.
그리고, 이 3개의 원소를 가지는 1차원 배열은 각각 다른 길이의 배열을 다시 가리키고 있습니다.
배열 안의 배열인 것입니다.
또한, 이 1차원 배열이 가리키고 있는 각각의 배열의 길이는 '가변적'입니다.
가변길이배열(Jagged Array) 생성하기
String arr[][] = new String[3][];
arr[0] = new String[3];
arr[1] = new String[2];
arr[2] = new String[4];
위와 같이 배열 객체를 생성할 때,
마지막 차원의 배열 크기를 지정하지 않고 배열 객체를 생성한 후,
나중에 각 배열이(arr[0], arr[1], arr[2])
각각의 새로운 배열들을 가리키도록 할 수 있습니다.
String arr[][] = {
{"A", "B", "C"},
{"D", "E"},
{"F", "G", "H", "I"}
};
위와 같이,
배열의 생성 및 데이터 초기화까지 한번에 할 수도 있습니다.
가변길이배열 길이 구하기
arr 길이, 각 arr[i]별 원소 갯수 구하기
코드
public class ArrayExam {
public static void main(String[] args) {
// 배열
String[][] arr = {
{ "A", "B", "C" },
{ "D", "E" },
{ "F", "G", "H", "I" }
};
// arr 길이
System.out.println("arr length : " + arr.length);
// 각 arr[i] 길이
System.out.println("arr[0] : " + arr[0].length);
System.out.println("arr[1] : " + arr[1].length);
System.out.println("arr[2] : " + arr[2].length);
}
}
결과
arr length : 3
arr[0] : 3
arr[1] : 2
arr[2] : 4
위 예제에서 arr는
위 그림과 같이
3개의 배열 원소와
각각의 배열 원소가 3개, 2개, 4개의 원소를 가지는 2차원 배열입니다.
arr.length;
arr의 갯수를 구합니다.
arr[0].length;
arr[1].length;
arr[2].length;
각 arr[i]가 가지고 있는 원소 갯수를 구합니다.
반복문을 사용하여 원소 갯수 구하기
코드
public class ArrayExam {
public static void main(String[] args) {
// 배열
String[][] arr = {
{ "A", "B", "C" },
{ "D", "E" },
{ "F", "G", "H", "I" }
};
// arr 길이
System.out.println("arr length : " + arr.length);
// 각 arr[i]의 길이
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] : " + arr[i].length);
}
}
}
결과
arr length : 3
arr[0] : 3
arr[1] : 2
arr[2] : 4
위와 같이 반복문으로 표현 할 수도 있습니다.
배열 전체의 원소 갯수(총합) 구하기
코드
public class ArrayExam {
public static void main(String[] args) {
// 배열
String[][] arr = {
{ "A", "B", "C" },
{ "D", "E" },
{ "F", "G", "H", "I" }
};
int count = 0;
// arr 길이
System.out.println("arr length : " + arr.length);
// 각 arr[i]
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "] : " + arr[i].length);
count += arr[i].length;
}
// 전체 원소의 갯수
System.out.println("전체 원소의 개수 : " + count);
}
}
결과
arr length : 3
arr[0] : 3
arr[1] : 2
arr[2] : 4
전체 원소의 개수 : 9
전체 원소의 갯수를 구하고 싶다면
위 코드와 같이
각 arr를 순회하면서(for문 사용)
원소의 갯수를 count 변수에 누적해 주면 됩니다.
가변길이배열(Jagged Array)의 생성 방법과
원소의 개수를 세는 방법을 알아보았습니다.
'IT > Java' 카테고리의 다른 글
[Java] 절대값 구하기 - Math.abs() (0) | 2021.04.19 |
---|---|
[Java] 2차원 배열의 길이 구하기 (0) | 2021.04.18 |
[Java] 배열의 길이 구하기, length 속성 (0) | 2021.04.18 |
[Java] 배열 거꾸로 변환하는 2가지 방법 (0) | 2021.04.18 |
[Java] 배열 원소 중 최대값의 인덱스, 최소값의 인덱스 구하기 (0) | 2021.04.17 |