언어(Language)/Java
[Java] 배열
송기동
2023. 8. 4. 14:01
728x90
배열 (Array)
- 연관된 데이터를 모아서 통으로 관리하기 위해서 사용하는 데이터 타입
- 여러개의 데이터를 하나의 변수에 저장하기 위한 것
- 정적인 크기를 가지며, 한 번 생성된 후에는 크기를 변경할 수 없음
- 메모리 상에 연속된 공간을 차지, 각 요소는 인덱스를 통해 접근
- 객체 배열의 메모리 공간에는 heap 메모리에 대한 주소 값이 할당
# 인덱스
- 인덱스연산자 : [ ]
- 0부터 시작해서 배열의 크기보다 하나 작은 값까지의 범위를 가짐
# 배열 길이 반환
- 배열명.length
# 배열 선언
자료형[] 배열명 = new 자료형[배열크기];
ex) int[] numbers = new int[3]; // 크기가 3인 int 배열 생성
# 배열 값 초기화
배열명[인덱스번호] = 값;
ex) numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
# 배열 리터럴을 사용하여 값 초기화
자료형[] 배열명 = {요소1, 요소2, 요소3 ...};
ex) int[] numbers = {10, 20, 30, 40, 50}; // 배열 리터럴을 사용하여 배열을 초기화
# 배열의 요소에 접근할 때
자료형 변수명 = 배열명[인덱스번호];
ex) int firstElement = numbers[0]; // 첫 번째 요소에 접근하여 값을 가져옴
배열 순회
- 배열의 각 요소를 하나씩 방문하면서 작업을 수행하는 과정
# for문을 사용한 순회
int[] numbers = {10, 20, 30, 40, 50};
for (int i = 0; i < numbers.length; i++) {
System.out.println("요소 " + i + ": " + numbers[i]);
}
# foreach문을 사용한 순회
int[] numbers = {10, 20, 30, 40, 50};
for (int number : numbers) {
System.out.println("요소: " + number);
}
이중 배열
- [ i ] 는 행
- [ j ] 는 열
자료형[][] 배열명 = {
{값1, 값2, ...},
{값1, 값2, ...},
...
};
배열명[i][j]
----------------------------------------------------------------
ex)
// 이중 배열 초기화
int[][] twoDimensionalArray = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} };
// 이중 배열 요소에 접근
int element = twoDimensionalArray[1][2]; // 7
# 예시
package ch09;
public class ArrayMainTest {
public static void main(String[] args) {
// 배열 이란
// **연관된 데이터를 모아서 통으로 관리하기 위해 사용하는 데이터 타입니다.**
// 사용하는 방법
int[] arr1; // 변수에 선언(데이터타입이 int가 아니라 int 배열입니다.)
arr1 = new int[2]; // 배열의 초기화는 반드시 크기가 먼저 지정해주어야 사용 가능하다.)
// 배열의 크기도 생각을 해보자
double[] arr2 = new double[2]; // 선언과 동시에 초기화
// 값을 넣는 방법
arr1[0] = 100;
arr1[1] = 1000;
// 인덱스의 순서는 0번부터 시작한다.
System.out.println(arr1[0]);
System.out.println(arr1[1]);
// 주의 : 배열의 길이(크기)와 인덱스의 번호는 다르다.
// 공식 --> 배열의 인덱스의 번호는 n-1
// System.out.println(arr1[2]); <-- 오류발생
arr2[0] = 10.0;
arr2[1] = 20.0;
System.out.println(arr2[0]);
System.out.println(arr2[1]);
} // end of main
} // end of class
100
1000
10.0
20.0
package ch09;
public class ArrayMainTest2 {
public static void main(String[] args) {
// 변수는 크게 몇가지가 존재한다고 하였나요?
// 기본데이터 타입, 참조 타입
char[] ch1 = new char[10]; // <-- 기본데이터 타입(연관된 데이터)
ch1[0] = 'H';
ch1[1] = 'E';
ch1[2] = 'L';
ch1[3] = 'L';
ch1[4] = 'O';
System.out.println(ch1[4]);
String[] strings = new String[5];
strings[0] = "안녕반가워";
strings[1] = "안녕반가워";
strings[2] = "안녕반가워";
System.out.println(strings[0]);
} // end of main
} // end of class
O
안녕반가워
728x90