변수는 한 개의 데이터만 저장할 수 있다. 따라서 저장해야 할 데이터의 수가 많아지면 그만큼 많은 변수가 필요하다
배열이란?
- 배열은 같은 타입의 데이터를 연속된 공간에 나열시키고, 각 데이터에 인덱스(index)를 부여해 놓은 자료구조이다
- 배열은 같은 타입의 데이터만 저장할 수 있다(ex: int배열은 int 값만 저장 가능하고, String 배열은 문자열만 저장 가능하다)
- 배열은 선언과 동시에 저장할 수 있는 데이터 타입이 결정된다
- 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없다
배열 선언
- 배열을 사용하기 위해서는 우선 배열 변수를 선언해야 한다
- 배열 변수 선언은 두 가지 형태로 작성할 수 있다( 자료형[ ] 배열명; 자료형 배열명[ ];)
- 배열 변수는 참조 변수에 속한다
- 참조할 배열 객체가 없다면 배열 변수는 null 값으로 초기화될 수 있다( 타입[ ] 변수=null;)
값 목록으로 배열 생성
-
자료형[] 배열명={값1, 값2, 값3, ...}; int[] arr={1, 2, 3};
- 중괄호{ }는 주어진 값들을 항목으로 가지는 배열 객체를 힙에 생성하고, 배열 객체의 번지를 리턴한다
new 연산자로 배열 생성
- 값의 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 배열 객체를 생성할 수 있다
-
자료형[ ] 배열명=new 자료형[길이]; int[] arr=new int[5];
- 길이는 배열이 저장할 수 있는 값의 수를 말한다
- new 연산자로 배열을 생성할 경우에는 이미 배열이 선언된 후에도 가능하다
-
자료형[] 배열명=null; 배열명=new 자료형[길이]; int[] arr=null; arr=new int[5];
배열 길이
- 배열 길이는 배열에 저장 할 수 있는 전체 항목 수를 말한다
- 배열의 길이를 얻으려면 배열 객체의 length 필드를 읽으면 된다
-
배열명.length; int[] arr={10, 20, 30}; arr.length; //3
- length 필드는 읽기 전용 필드이기 때문에 값을 바꿀 수 없다
배열 복사
- 배열 간의 항목 값들을 복사하려면 System.arraycopy() 메소드를 사용할 수 있다
-
System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
- src : 원본 배열
- srcPos : 원본 배열에서 복사할 항목의 시작 인덱스
- dest : 복사본 배열
- destPos : 복사본 배열에 붙여넣을 시작 인덱스
- length : 복사할 개수
- 사용 예
-
System.arraycopy(arr1, 0, arr2, 0, arr1.length);
'JAVA' 카테고리의 다른 글
[JAVA] 객체와 클래스 (0) | 2022.02.22 |
---|---|
[JAVA] 객체 지향 프로그래밍(OOP) (0) | 2022.02.19 |
[JAVA] 분기문-break, continue (0) | 2022.02.16 |
[JAVA] 반복문 (0) | 2022.02.15 |
[JAVA] 조건문-switch문 (0) | 2022.02.14 |