JAVA/JAVA 기초

JAVA : 배열 (Array)

신강희 2024. 6. 3. 23:53
728x90

< 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