코딩 이야기

자바 배열 (4일) 본문

JAVA

자바 배열 (4일)

별메아리 2023. 2. 1. 15:12
728x90

배열

배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해놓은 자료구조입니다.

 

배열의 특징

  1. 배열은 같은 타입의 데이터만 저장할 수 있습니다.
  2. 한 번 생성된 배열은 길이를 늘이거나 줄일 수 있습니다.

배열선언

배열을 사용하기 위해서는 우선 배열 변수를 선언해야 합니다. 배열 변수 선언은 다음과 같이 두 가지 형식으로 작성할 수 있습니다.

 

형식 1              형식2

타입[] 변수;      변수[] 타입;

 

참조할 배열 객체가 없다면 배열 변수는 null 값으로 초기화될 수 있습니다.

타입[] 변수 = null;

배열 변수가 null 값을 가진 상태에서 변수[인덱스]로 값을 읽거나 저장하게 되면 NullPointerException이 발생합니다. 배열을 생성하고 배열 변수가 참조한느 상태에서 값을  저장하거나 읽어야 합니다.

 

배열생성

배열 객체를 생성하려면 값 목록을 이용하거나 new 연산자를 이용하는 방법이 있습니다.

값 목록으로 배열 생성

타입[] 변수 = { 값0, 값1, 값2, 값3, ...}

package ch02;

public class ArrayCreateByValueListExample1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] scores = { 83, 90, 87 };
		System.out.println("scores[0] : " + scores[0]);
		System.out.println("scores[1] : " + scores[1]);
		System.out.println("scores[2] : " + scores[2]);
		
		int sum = 0;
		for(int i=0; i<3; i++) {
			sum += scores[i];
		}
		System.out.println("총합 : " + sum);
		double avg = (double) sum / 3;
		System.out.println("평균 : " + avg);
	}

}

값의 목록으로 배열 객체를 생성할 때 주의할 점은 배열 변수를 이미 선언한 후에는 다른 실행문에서 중괄호를 사용한 배열 생성이 허용되지 않습니다.

타입[]  변수;

변수 = { 값0, 값1, 값2, 값3,···} //컴파일 에러

 

배열 변수를 미리 선언한 후 값 목록들이 나중에 결정되는 상황이라면 다음과 같이 new 연산자를 사용해서 값 목록을 지정해주면 됩니다.

변수 = new 타입[] { 값0, 값1 ,값2, 값3,···};

 

메소드의 매개값이 배열일 경우에도 마찬가지입니다. 아래와 같이 매개 변수로 int[] 배열이 선언된 add() 메소드가 있을 경우, 값 목록으로 배열을 생성함과 동시에 add() 메소드의 매개값으로 사용하고자 할 때는 반드시 new 연산자를 사용해야 합니다.

int add(int[] scores) {···}

 

 

값 목록으로 배열 생성

package ch02;

public class ArrayCreateByValueListExample2 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] scores;
		scores = new int[] { 83, 90 ,87 };
		int sum1 = 0;
		for(int i=0; i<3; i++) {
			sum1 += scores[i];
		}
		System.out.println("총합 : " + sum1);
		
		
		int sum2 = add( new int[] { 83, 90, 87 });
		System.out.println("총합 : " + sum2);
		System.out.println();
	}

		public static int add(int[] scores) {
			int sum = 0;
			for(int i=0; i<3; i++) {
				sum =+ scores[i];
			}
			return sum;
		}
}

new 연산자로 배열 생성 

값을 목록을 가지고 있지 않지만, 향후 값들을 저장할 배열을 미리 만들고 싶다면 new 연산자로 다음과 같이 배열 객체를 생성할 수 있습니다.

타입 [] 변수 = new 타입 [길이];

배열 변수가 선언된 경우에도 new 연산자로 배열을 생성할 수 있습니다.

타입[] 변수 = null;

변수 = new 타입 [길이];

int [] intArray =new int [5];

new 연산자로 배열을 처음 생성할 경우 배열은 자동적으로 기본값으로 초기화 됩니다.

int 배열일 경우 기본값0 으로 초기화 되고 String 배열일 경우 null값으로 초기화됩니다.

 

배열의 초기값

new 연산자로 배열 생성

package ch02;

public class ArrayCreateByNewExample {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr1= new int[3];
		for(int i=0; i<3; i++) {
			System.out.println("arr["+i+"] : " + arr1[i]);
		}
		arr1[0] = 10;
		arr1[1] = 20;
		arr1[2] = 30;
		for(int i=0;i <3; i++) {
			System.out.println("arr["+i+"]: " + arr1[i]);
		}
		
		double[] arr2 =new double[3];
		for(int i=0; i<3; i++) {
			System.out.println("arr2[+i+] : " + arr2[i]);
		}
		arr2[0] = 0.1;
		arr2[1] = 0.2;
		arr2[1] = 0.3;
		for(int i=0; i<3; i++) {
			System.out.println("arr2["+i+"]:" + arr2[i]);
		}
	}

}
728x90

'JAVA' 카테고리의 다른 글

자바 조건문과 반복문(5일)  (0) 2023.02.02
자바 배열 (5일)  (0) 2023.02.02
JAVA 참조 타입과 참조 변수  (0) 2023.02.01
JAVA 4일  (0) 2023.02.01
JAVA 3일차수업  (0) 2023.01.31
Comments