본문 바로가기

JAVA

[JAVA] 배열

Array (배열) 

 - 동일한 타입의 데이터 여러개를 하나의 연속된 메모리 공간에서 관리하는 것

 - 크기 변경 불가

 - 개별 요소 삭제 불가

 

<배열 선언 방법>

1) int[] arr; ← 이 방식 사용하기. 2와 같은 방법 사용시, 변수명이 길어지면 이 변수가 배열이구나를 알기 힘들기 때문.

2) int arr[];

int[] a = new int[5]; : a라는 변수에 크기가 5인 배열 할당. 배열에는 int type의 자료 5개를 저장할 수 있다.

· primitive(기본형) : Type 마다 초기화가 자동으로 된다. default 초기화.

자료형 기본값 비고
byte, short, int 0  
long 0L  
float 0.0f  
double 0.0  
char '\u0000' 공백문자
boolean False  
참조형 변수 null 아무것도 참조하지 않음

· 주소로 접근하는 것은 어렵기 때문에 index로 쉽게 접근 가능.

  - index 0의 주소 값을 먼저 찾고 index 1로 접근하기 때문에 index는 0부터 시작한다.

 

String str = "안녕하세요" ; 

str.toCharArray(); -> String → char[]

Array.toString(str); 배열에 존재하는 값 출력 가능

 

Type

 - 변수에 저장되는 데이터의 종류. 기본형, 참조형이 있다.

· primitive(기본형) : 초기값이 이미 정해져있음. Stack 영역에 저장.미리 정해진 크기의 memory size로 표현한다.

· reference(참조형) : 기본값은 null. Heap 영역에 저장.미리 정해질 수 없는 데이터의 표현으로 변수에는 실제 값을 참조할 수 있는 주소만 저장한다.

       - new라는 키워드가 붙으면 참조형

형을 잘 알아야 error 줄일 수 있음

 

· 중괄호를 이용한 할당은 선언과 동시에만 가능하다.

ex)

int[] b = {1,2,3,4,5};

int[] c = new int[] {2,4,6};

 

· Array 객체의 length 속성으로 길이를 나타낼 수 있다. 

ex) System.out.println(a.length);

 

· 배열복사

System.arraycopy(원본배열, 복사시작 index, 사본배열, 사본배열 붙여넣기 시작 index, 복사할 크기);

int[] arr1 = { 1, 2, 3, 4, 5};
int[] arr2 = { 0, 0, 0, 0, 0};

System.arraycopy(arr1, 1, arr2, 2, 3);

arr2는 [ 0, 0, 2, 3, 4 ] 가 된다.

 

2차원 배열

 

int [][] intArr = new int[4][3];

intArr의 길이 : 4

intArr[]의 크기 : 3

 

int [][] intArray = {{0,1,2},{0,1,2},{0,1,2},{0,1,2}}; // { } 이용하여 선언과 동시에 값 할당 가능

 

int [][] intArr2 = new int[5][]; // 1차 Array 생성 후, 필요에 따라 2차 배열 생성 가능

intArr2[1] = new int[3];

 

 

 

 

'JAVA' 카테고리의 다른 글

[JAVA] HashMap 기본 및 정렬  (0) 2023.01.19
[Java] BigInteger(큰 정수)  (0) 2023.01.18
[JAVA] 객체지향(3)  (0) 2022.01.30
[JAVA] 객체지향 (2)  (0) 2022.01.24
[JAVA] 객체 지향 (1)  (0) 2022.01.23