자바에서 배열을 왜 공부하는지 의구심이 들었습니다. 그래서 챗GPT에 물어봤더니 아래의 결과가 나왔습니다.

위 사진이 내가 공부하고자 하는 내용이자 결론입니다!
이제 하나씩 자세히 알아보고자 합니다.
// 배열을 사용하지 않은 경우
int student1 = 85;
int student2 = 90;
int student3 = 78;
// 학생 점수 평균 구하기
int average = (student1 + student2 + student3) / 3;
// 배열을 사용한 경우
int[] students = {85, 90, 78};
// 반복문을 이용해 학생 점수 평균 구하기
int sum = 0;
for (int i = 0; i < students.length; i++) {
sum += students[i];
}
int average = sum / students.length;
위의 코드랑 달리 변수를 더 많이 입력하게 된다면 비효율적인 코드가 될 것이라 판단됩니다.
// 배열 선언 및 초기화
int[] numbers = {10, 20, 30, 40, 50};
// 특정 인덱스에 빠르게 접근
int number = numbers[2]; // numbers[2]는 30을 반환

// 배열 선언 및 초기화
int[] array = new int[100];
// 배열 초기화
for (int i = 0; i < array.length; i++) {
array[i] = i;
}
// 캐시 적중률 예시
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
연속된 메모리 공간 덕분에 CPU 캐시가 배열의 여러 요소를 한 번에 로드할 수 있습니다.
스택: 후입선출(LIFO) 구조로, 나중에 들어온 데이터가 먼저 나갑니다. 함수 호출 관리, 뒤로 가기 기능 등**에 사용됩니다.
큐: 선입선출(FIFO) 구조로, 먼저 들어온 데이터가 먼저 나갑니다. 작업 대기열, BFS 알고리즘 등***에 사용됩니다.