< JAVA의 배열 (Array) >
# 자바에서 제공하는 기본 데이터 구조 중 하나인 배열(Array)에 대하여 정리
- 배열은 정해진 크기의 동일한 데이터 타입 요소들을 저장할 수 있는 자료 구조
- 배열은 고정된 크기를 가지며, 크기가 한 번 정해지면 변경할 수 없다!
- 이러한 특성 때문에 배열은 간단한 데이터 저장 및 접근에는 유용하지만, 실무에서는 유연성이 부족해 잘 사용되지 않는다.
# 코드로 정리!
- Array라는 프로젝트 생성 후, ArrayTest라는 클래스를 생성하여 작성
# 전체 예제 코드
public class ArrayTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Array (배열) 는, 자바에서 제공하는
// 기본 Data Structure (데이터 스트럭쳐)다.
// 하지만 실무에서는 많이 사용하지 않고, 다른것을 사용한다.
// 학생들 50명의 수학점수(정수)를 처리하려 한다.
// new 는 메모리에 공간을 확보하는것!
int[] scoreArray = new int[50];
scoreArray[0] = 90;
scoreArray[1] = 88;
// 학생들 20명의 점수를 관리하려 한다.
// 반복문을 사용하여, 모든 학생의 점수를 30으로 저장하세요.
// 데이터를 불러올때는 반복문을 사용하여 확인한다.
int[] scoreArr = new int[20];
for( int i = 0; i < 20; i++ ) {
scoreArr[i] = 30;
}
// 3번째 학생의 점수를 출력!
System.out.println( scoreArr[2]);
System.out.println("--------------------");
// 20명 학생 점수를 모두 출력하시오. (첫번째부터 스무번째까지 모두 출력)
// 저 20명도 .length 멤버 변수로 수정해주는게 좋다!
for( int i = 0; i < 20; i++ ) {
System.out.println(scoreArr[i]);
}
System.out.println("--------------------");
// 70, 99, 45, 64
// 이 데이터를 바로, 배열로 만드는 방법
// 이렇게 데이터가 있을때는 {} 중가로 안에 작성 헷갈린다...
// 불러올때 매번 배열 갯수를 세는건 비효율적이니 .length 멤버 변수를 사용하면 배열 갯수를 자동으로 불러준다.
// .length 는 함수가 아니라 멤버 변수 이다!
int[] mathArray = {70, 99, 45, 64};
for( int i = 0; i < mathArray.length; i++ ) {
System.out.println(mathArray[i]);
}
// 배열의 치명적인 단점은, 데이터 추가가 불가능!
// 데이터를 추가하려면 새로운 데이터의 기존 데이터를 복사해서 직접 붙여넣고 다시 만들어야함
// 물론, 데이터가 수정될일이 없고 고정된 데이터를 사용할꺼면 배열을 사용해도됨
}
}
# 배열 선언 및 초기화
- 배열을 선언하고 초기화하는 방법
int[] scoreArray = new int[50];
scoreArray[0] = 90;
scoreArray[1] = 88;
# 배열의 활용
- 반복문을 사용하여 배열의 모든 요소를 초기화하거나 접근할 수 있다.
- 20명의 학생 점수를 30으로 초기화하고 출력하는 코드
int[] scoreArr = new int[20];
for(int i = 0; i < 20; i++) {
scoreArr[i] = 30;
}
// 세 번째 학생의 점수 출력
System.out.println(scoreArr[2]);
// 20명의 학생 점수 모두 출력
for(int i = 0; i < 20; i++) {
System.out.println(scoreArr[i]);
}
# 배열의 동적 초기화
- 이미 알고 있는 데이터를 배열로 바로 초기화하는 방법도 있다.
- 이 방법은 중괄호 {}를 사용하여 데이터를 직접 배열에 넣는 방식입니다.
- 여기서 length는 배열의 길이를 나타내는 멤버 변수로, 배열의 크기를 자동으로 가져올 수 있어 매우 유용 (함수가 아니라 멤버 변수라는 점 기억!)
int[] mathArray = {70, 99, 45, 64};
for(int i = 0; i < mathArray.length; i++) {
System.out.println(mathArray[i]);
}
# 배열의 단점
- 배열의 주요 단점 중 하나는 크기가 고정되어 있어, 한 번 생성된 배열의 크기를 변경할 수 없다는 점
- 새로운 데이터를 추가하려면 기존 데이터를 새로운 배열로 복사해야 해서 번거롭다.
// 배열의 치명적인 단점: 데이터 추가가 불가능
int[] oldArray = {1, 2, 3};
int[] newArray = new int[oldArray.length + 1];
System.arraycopy(oldArray, 0, newArray, 0, oldArray.length);
newArray[oldArray.length] = 4; // 새로운 데이터 추가
# 결론
- 배열은 자바에서 기본적으로 제공하는 데이터 구조로, 동일한 데이터 타입의 요소들을 고정된 크기만큼 저장 가능
- 실무에서는 이러한 단점을 보완한 ArrayList와 같은 컬렉션을 더 많이 사용한다. (물론 고정되어서 수정할일이 없다면 배열을 사용하여 간단하게 작성하여도됨)
다음 게시글로 계속~!
'JAVA > JAVA 기초' 카테고리의 다른 글
JAVA : 클래스(Class)와 객체(object) 생성 (0) | 2024.06.04 |
---|---|
JAVA : 함수 (Function) (0) | 2024.06.04 |
JAVA : 반복문 (Loop) (2) | 2024.06.03 |
JAVA : switch 문 (0) | 2024.06.03 |
JAVA : 조건문 (0) | 2024.05.31 |