티스토리 뷰

Programming/Java

[Java] 배열 Array

와우소년 2020. 5. 28. 21:40

배열 Array

같은 타입의 여러 변수를 하나의 묶음으로 다루는 것.

많은 양의 데이터를 다룰 때 유용하다.

배열의 각 요소는 서로 연속적이다.

 

- 변수   :   하나의 값을 저장하는 공간.

- 배열   :   둘 이상의 값을 저장하는 공간.

 

 

1. 표기 방법

1) 자료형[] 배열명 = {};

2) 자료형 배열명 [] = {};

 

 

2. 배열 선언

자료형 배열명 [] = new 자료형[];

 

 

3. 배열의 초기화

1) int arr[] = new int [2];

   - 메모리에 배열의 크기가 2인 int형 배열 공간 할당.

 

2) int[] arr = {1, 2}

   - 메모리에 값이 들어있는 int형 배열 공간 할당.

   - 0번째 인덱스에는 1, 1번째 인덱스에는 2가 들어있다.

 

※주의사항

- 하나의 배열에는 하나의 자료형만 사용 가능하다.

- 배열을 선언할 때는 반드시 new를 사용한다.

- 배열은 할당한 크기(length)를 넘으면 안된다.

   =>   int arr[] = new int[2] {1,2,3}   =>   에러 (공간을 할당하고, 또 추가로 할당하기 때문.)

 

 

4. 배열의 크기

배열이름.length; 

int[] arr = new int[3];
System.out.println(arr.length);

//출력결과 => 3

 

 

 

2차원 배열

종과 횡으로 2차원 배열을 생성한다.

 

1. 표기 & 선언방법

자료형[][] 변수명 = new 자료형[크기1][크기2];

   =>  (크기1 * 크기2) 개의 메모리 공간이 생긴다.

int[][] arr = new int[4][4];

// 4*4 => 총 16개의 메모리 공간 할당

 

2. 가변 배열

4개의 메모리공간은 미리 만들고, 나머지는 추가로 설정할 수 있다.

자료형 [] [] 변수명 = new int[크기1][ ]; 

int[][] arr = new int[4][]

//1차원 4개만 만들고 2차원 배열의 크기는 나중에 지정

 

 

배열의 복사

Q. 다음 arr1 의 값을 arr2에 복사하고 싶으면?

     int[] arr1 = {1,2,3};

     int[] arr2 = new int [3];

// 방법 1.
arr2 = arr1;	// 복사가 아니라 메모리 주소만 같아진다.
		// arr2의 값을 바꾸면 arr1의 값도 바뀐다.

// 방법 2.
for(i=0; i<arr1.length; i++){	// for문을 이용하여 하나하나의 값을 모두 바꿔준다.
	arr2[i] = arr1[i]
}

// 방법 3.
// 메소드를 이용하여 복사
System.arraycopy(arr1, 0, arr2, 0, arr1.length);	// arr1[0]에서 arr2[0]로 arr1의 length만큼의 데이터를 복사.

 

 

new

자바는 동적메모리(힙 메모리)를 사용.

변수를 선언하면 힙 메모리에 쌓인다.

new는 배열을 선언할 때는 힙 메모리에 저장한 변수를 사용하라고 선언하는 것.

 

=> new를 쓰는 것들은 전부 '참조형 변수'.

 

※ 참조형 변수 => 주소

※ 참조형 변수는 99%가 '클래스'

※ 클래스는 .(점) 연산자를 통해서 접속한다. (ex: Scan.nextInt  => Scanner 클래스 안의 nextInt에 접속)

 

 

 

 

'Programming > Java' 카테고리의 다른 글

[Java] 메모리_Stack / Heap  (0) 2020.05.28
[Java] 메소드 Method  (0) 2020.05.28
[Java] 반복문 for / while  (0) 2020.05.28
[Java] 조건문 if / switch  (0) 2020.05.28
[Java] 연산자  (0) 2020.05.28
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
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
글 보관함