반응형
SMALL
배열(Array)이란?
1. 동일한 타입의 데이터 0개 이상을 하나의 연속된 메모리 공간에서 관리하는 것이다.
2. 요소에 접근하는 속도가 매우 빠르며, 한번 생성하면 크기 변경이 불가능하다.
3. 개별 요소는 다른 값으로 변경이 가능하지만 삭제는 할 수 없다.
배열이 필요한 이유
1. 변수의 수 감소
2. 코드의 길이 감소
3. 동적인 변수의 개수 적용 가능
package Java;
public class Array1_1 {
public static void main(String[] args) {
int intType1 = 1;
int intType2 = 2;
int intType3 = 3;
int intType4 = 4;
int intType5 = 5;
System.out.println("[배열사용 전]");
System.out.print(intType1 + " ");
System.out.print(intType2 + " ");
System.out.print(intType3 + " ");
System.out.print(intType4 + " ");
System.out.print(intType5 + " ");
System.out.println("\n[배열사용 후]");
int[] arr = {1, 2, 3, 4, 5};
for (int i : arr) {
System.out.print(i + " ");
}
System.out.println();
}
}
● 코드 결과
[배열사용 전]
1 2 3 4 5
[배열사용 후]
1 2 3 4 5
1차원 배열의 생성
1. new와 함께 배열의 데이터 타입 및 크기 지정 ( []의 위치는 변수 앞/뒤 상관없다.)
- int[] arr1 = new int[3];
- int arr1[] = new int[5];
2. 선언과 동시에 타입 및 값 지정 ( { } (중괄호)와 , (쉼표)로 구분)
- int[] arr2 = {1,2,3,4,5};
- int[] arr3 = new int[]{1,2,3,4,5};
3. 선언할 때 배열의 크기를 알 수 없을 때
- int[] arr4;
- arr4 = new int[]{1,2,3,4,5};
4. 잘못된 예시
- int[] arr5;
- arr5 = {1,2,3,4,5};
- arr5 = new int {1,2,3,4,5};
- arr5 = int[] {1,2,3,4,5};
- arr5 = new {1,2,3,4,5};
* 컴파일 오류 발생
package Java;
import java.util.Arrays;
public class Array1_2 {
public static void main(String[] args) {
// new와 함께 배열의 데이터 타입 및 크기 지정
int[] arr1 = new int[5];
for (int i = 0; i < 5; i++) {
arr1[i] = i;
}
// 선언과 동시에 타입 및 값 지정
int[] arr2 = {1,2,3,4,5};
// 선언과 동시에 타입 및 값 지정
int[] arr3 = new int[]{1,2,3,4,5};
// 선언할 때 배열의 크기를 알 수 없을 때
int[] arr4;
arr4 = new int[]{1,2,3,4,5};
// 컴파일 오류 발생
int[] arr5;
// arr5 = {1,2,3,4,5};
// arr5 = new int {1,2,3,4,5};
// arr5 = int[] {1,2,3,4,5};
// arr5 = new {1,2,3,4,5};
}
}
1차원 배열 사용
1. index 번호는 0부터 시작
- 크기가 N인 배열의 번호는 0 ~ N-1
2. 배열의 길이
- 배열이름.length로 배열의 크기 조회 가능
3. for-each를 사용한 출력
4. for문을 통한 출력 대신 Arrays.toString()을 사용해서 출력을 보다 편리하게 할 수 있다.
package Java;
import java.util.Arrays;
public class Array1_3 {
public static void main(String[] args) {
int N = 5;
int[] arr = new int[N];
int count = 0;
System.out.println("arr[]의 길이: " + arr.length);
// 0~N-1
for (int i = 0; i < arr.length; i++) {
arr[i] = count++;
}
System.out.print("for-each 출력 : ");
for (int x : arr) {
System.out.print(x + " ");
}
System.out.println();
System.out.print("Arrays.toString() 출력 : " + Arrays.toString(arr));
}
}
● 코드 결과
arr[]의 길이: 5
for-each 출력 : 0 1 2 3 4
Arrays.toString() 출력 : [0, 1, 2, 3, 4]
2차원 배열 생성
1. new와 함께 배열의 데이터 타입 및 크기 지정 ( []의 위치는 변수 앞/뒤 상관없다.)
- int arr1[][] = new int[3][2];
- int[]arr2[] = new int[3][2];
- int[][]arr3 = new int[3][2];
2. 선언과 동시에 타입 및 값 지정 ( { } (중괄호)와 , (쉼표)로 구분)
- int[][]arr4 = new int[][] {{1,2},{1,2},{1,2}};
- int[][]arr5 = {{1,2},{1,2},{1,2}};
3. 선언할 때 배열의 크기를 알 수 없을 때
- int[][]arr6;
- arr6 = new int[][] {{1,2},{1,2},{1,2}};
4. 잘못된 예시
- int[] arr5;
- arr5 = {1,2,3,4,5};
* 컴파일 오류 발생
package Java;
public class Array2_1 {
public static void main(String[] args) {
// new와 함께 배열의 데이터 타입 및 크기 지정 ( []의 위치는 변수 앞/뒤 상관없다.)
int arr1[][] = new int[3][2];
int[]arr2[] = new int[3][2];
int[][]arr3 = new int[3][2];
// 선언과 동시에 타입 및 값 지정 ( { } (중괄호)와 , (쉼표)로 구분)
int[][]arr4 = new int[][] {{1,2},{1,2},{1,2}};
int[][]arr5 = {{1,2},{1,2},{1,2}};
// 선언할 때 배열의 크기를 알 수 없을 때 1
int[][]arr6;
arr6 = new int[][] {{1,2},{1,2},{1,2}};
// 선언할 때 배열의 크기를 알 수 없을 때 2
int[][]arr7;
int count = 0;
arr7 = new int[3][2];
for (int i = 0; i < arr7.length; i++) {
for (int j = 0; j < arr7[i].length; j++) {
arr7[i][j] = count++;
}
}
// 잘못된 예시
// int[][]arr9;
// arr9 = {{1,2},{1,2},{1,2}};
//
// int[][]arr9;
// arr9 = int[][] {{1,2},{1,2},{1,2}};
//
// int[][]arr9;
// arr9 = new {{1,2},{1,2},{1,2}};
}
}
2차원 배열 사용
1. index 번호는 0부터 시작
- 크기가 N인 배열의 번호는 0 ~ N-1
2. 배열의 길이
- 배열이름.length로 배열의 크기 조회 가능
- 배열이름[index].length로 배열의 크기 조회 가능
3. for-each를 사용한 출력
4. for문을 통한 출력대신 Arrays.toString()을 사용해서 출력을 보다 편리하게 할 수 있다.
package Java;
import java.util.Arrays;
public class Array2_2 {
public static void main(String[] args) {
int[][] arr = new int[4][3];
int count = 0;
System.out.println("arr[]의 길이: " + arr.length);
for (int i = 0; i < arr.length; i++) {
System.out.println("arr[" + i + "]의 길이: " + arr[i].length);
for (int j = 0; j < arr[i].length; j++) {
arr[i][j] = count++;
}
}
System.out.println();
System.out.println("for-each 출력: ");
for (int[] index : arr) {
for (int data : index) {
System.out.print(data + "\t");
}
System.out.println();
}
System.out.println();
System.out.println("Arrays.toString() 출력: ");
for (int[] index : arr) {
System.out.println(Arrays.toString(index));
}
}
}
● 코드 결과
arr[]의 길이: 4
arr[0]의 길이: 3
arr[1]의 길이: 3
arr[2]의 길이: 3
arr[3]의 길이: 3
for-each 출력:
0 1 2
3 4 5
6 7 8
9 10 11
Arrays.toString() 출력:
[0, 1, 2]
[3, 4, 5]
[6, 7, 8]
[9, 10, 11]
가변 배열
행 또는 면의 크기가 가변적인 배열이다.
1. 형식
- 자료형 [][]배열명 = new 자료형[첨자][]
2. 생성 방법은 다음 소스 코드와 같다.
package Java;
import java.util.Arrays;
public class Array3 {
public static void main(String[] args) {
int[][] arr1 = new int[3][];
arr1[0] = new int[2];
arr1[1] = new int[3];
arr1[2] = new int[4];
int[][] arr2 = new int[3][];
arr2[0] = new int[] { 1, 2 };
arr2[1] = new int[] { 3, 4, 5 };
arr2[2] = new int[] { 6, 7, 8, 9 };
}
}
배열 초기화 값
- 배열 생성과 동시에 자료형에 대한 default 초기화 진행
자료형 기본값 비고 boolean false char 'u0000' 공백 문자 byte, short, int 0 long 0L float 0.0f double 0.0 참조형 변호 null 아무것도 참조하지 않음
배열의 타입
당연한 부분이지만 참고하는 것이 좋다.
1. int arr의 arr타입?
- int 타입
2. int[] arr의 arr타입?
- int[] 타입
3. int[][] arr의 arr타입?
- int[][] 타입
JAVA List
JAVA List
Start Java!!! ● 1 ● 2 기회는 준비된 자에게 찾아온다.
han-hoon.tistory.com
기회는 준비된 자에게 찾아온다.

반응형
LIST
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 반복문 for과 while(자바) (0) | 2022.02.19 |
---|---|
[JAVA] 조건문 if와 while (자바) (0) | 2022.02.19 |
[JAVA] 랜덤(Random) 수 구현(자바) (0) | 2022.02.19 |
[JAVA] 연산자(자바) (0) | 2022.02.18 |
[JAVA] 변수(자바) (0) | 2022.02.18 |
댓글