Programing Language/Java
[Java] 자바의 배열(Arrays)
vinedpillar
2022. 5. 26. 22:03
배열
- 배열이란 동일한 자료형을 묶어 저장하는 참조 자료형입니다.
- 배열을 생성할 때는 반드시 크기를 지정해야하고, 한 번 지정하면 변경할 수 없습니다.
배열을 생성하는 방법
// 자료형[] 변수명
자료형[] 변수명 = new 자료형[생성하고자하는 배열의 크기];
int[] arr1 = new int[3];
// 자료형 변수명[]
자료형 변수명[] = new 자료형[생성하고자 하는 배열의 크기];
double arr2[] = new double[4];
- 배열 선언 방법
- 일반적으로 자료형, 변수의 표현방식의 일관성을 유지하기 위해 변수명에 대괄호([])를 붙이는 방식보다 자료형에 대괄호를 붙이는 방식을 많이 사용합니다.
- 배열을 선언하면 해당 자료형으로 값을 입력할 수 있는 공간이 배열의 크기 개수만큼 생성됩니다.
- 이러한 배열의 공간 번호를 인덱스(Index)라고 하며, 배열의 인덱스는 0부터 시작하여 1씩 증가합니다.
- 배열을 생성할 때 값을 선언하지 않으면 기본값으로 자동 초기화합니다.
데이터 타입 | 초기 값 | ||
기본 타입 | 정수형 | byte[] | 0 |
short[] | 0 | ||
int[] | 0 | ||
long[] | 0L | ||
문자형 | char[] | '\u0000' | |
실수형 | float[] | 0.0F | |
double[] | 0.0 | ||
논리형 | boolean[] | false | |
참조 타입 | - | class[] | null |
interface[] | null |
- 배열 값 입력
선언된 배열에 값 입력하기
// 배열의 인덱스에 각 값을 넣어서 선언
자료형[] 변수명 = new 자료형[배열 크기]
int[] arr1 = new int[3];
arr1[0] = 3;
arr1[1] = 6;
// 3 출력
System.out.println(arr[0)];
// 6 출력
System.out.println(arr[1)];
// 0 출력(기본값)
System.out.println(arr[2)];
// 중괄호{}를 이용하여 한번에 삽입 가능
// 선언과 변수 대입을 나눠서 해도 무관
// 이 경우 중괄호에 입력하는 수에 따라 자동으로 크기가 지정
// 따라서 크기 부분을 반드시 비워두어야 함
// (입력할 경우 오류 발생)
int[] arr2 = new int[] {3, 6, 9, 12};
// 중괄호를 이용할 경우 new를 생략해도 가능
// 단 이경우에는 선언과 변수 대입을 나눌 수 없고 한번에 입력 필요
int[] arr3 = {2, 4, 6, 8, 0};
배열의 메모리 구조
- 배열은 아래 그림과 같이 메모리에 저장됩니다.
- 배열의 크기를 확인하려면 선언한 배열 변수.length 를 통해 확인할 수 있습니다.
(도트(.) 연산자: 특정 객체의 하위 필드나 메서드를 불러오기 위해 사용되는 연산자)
- 배열의 크기 활용
배열 크기(array.length) 활용 예시
int[] arr = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24};
// arr으로 선언된 int형 배열의 크기를 출력
// 12 출력
System.out.println(arr.length);
반복문을 활용하여 배열 내부 값 확인
- 배열 내부의 값은 반복문을 활용해서 확인할 수 있습니다.
for문을 활용하여 배열 내부 값 확인
// 배열 선언
int[] arr = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25};
// 배열 내부 값을 하나씩 확인하는 프로그램
// 배열의 크기를 확인하는 .length를 통해 반복해야할 횟수(배열의 크기만큼) 지정
// 배열의 값이 인덱스 순으로 한 줄씩 띄워지면서 출력
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
// 배열 내부 값을 순차적으로 더하는 프로그램
// 반복문 외부에 합계를 저장할 변수를 지정
// sum 값은 169 출력
int sum = 0;
for(int i = 0; i < arr.length; i++) {
sum += arr[i];
}
System.out.println(sum);
- for-each문
- 배열에서 반복문을 더 효율적으로 사용하기 위해 향상된 for문(for-each문)을 활용할 수 있습니다.
- for-each문은 for문과 동일하게 for키워드를 사용하지만 for 내부의 조건식을 입력하는 방식이 조금 다릅니다.
- for-each문의 기본 형태
for(원소 자료형 변수명: 배열 객체 변수) {
반복할 실행문을 입력할 코드 블럭
}
향상된 for문 예시
// String 타입의 배열 선언
String[] count = {"one", "two", "three", "four", "five"};
// for-each문을 활용하여 반복문 작성
// one, two, three ... 가 한줄 씩 출력
for(String number: count) {
System.out.println(number)
}