코딩하는 몽구리

자바의 배열 본문

Java

자바의 배열

코딩구리 2022. 7. 4. 21:56
int intArray = new int[5];​

- 배열? 

배열은 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조이다. 한마디로, 흩어져 있는 자료들을 정리하기 위해 사용한다고 이해하면 쉽다. 

 

 

 

4
55
32
28
2

 

int i[] = new int[10];

 

 배열을 사용하는 가장 큰 이유 중 하나는 반복문의 활용이다. 

for(sum=0, n=0; n<10; n++)
	sum += i[n]

위와 같은 방식으로 10개의 정수 합을 간단히 구할 수 있다.

 

-  배열 선언 및 생성 

1. 배열에 대한 레퍼런스 변수 선언

2. 배열 생성 - 배열의 저장 공간 할당

 

배열은 (1)배열에 대한 레퍼런스 변수를 선언하는 단계와 (2) 데어터를 저장할 배열 공간을 할당받는 단계로 구분된다. 

 

(1)배열에 대한 레퍼런스 변수 intArray 선언 

- 이 선언만으로 배열 공간이 할당되지는 않는다. intArray 는 주소 값(레퍼런스 값)을 가지며 그 자체가 배열은 아니다.

int intArray [];        

.

intArray

int intArray[];    //<- 이 방법이 일반적이다. 
int [] intArray;

※ 배열 선언 시에는 []안에 배열의 크기를 지정해서는 안된다. 

 

(2)배열 생성

배열 생성은 저장할 배열 공간을 할당받는 과정이다. 반드시 new 연산자 를 이용하여 배열을 생성하며 []안에 생성할 원소 개수를 지정한다. 

 

 

- 배열의 선언과 동시에 생성

int intArray = new int [5];

 

- 배열 초기화

배열 선언문에서 {}에 원소를 나열하면 초기화된 배열을 만들 수 있다. 

int intArray[] = {4, 3, 2, 1, 0};
double doubleArray[] = {0.01, 0.02, 0.03, 0.04};

위와 같이 배열을 초기화하면 자동으로 배열의 크기가 저장된다. 

 

- 배열 인덱스와 배열 원소 접근 

배열의 인덱스는 정수만 가능하다. 인덱스는 0부터 시작하며 마지막 원소의 인덱스는 (배열크기-1)이다. 

 

실습1

int intArray[] = new int[5];  //원소가 5개인 배열 생성, 인덱스는 0~4까지 가능
intArray[0] = 5;			  //원소 0에 5저장
intArray[3] = 6; 			  // 원소 3에 6저장	
int n = intArray[3]; 		  // 원소 3의 값을 읽어 n에 저장. n은 6이됨

 

//양수 5개를 입력받아 배열에 저장하고, 제일 큰 수를 출력하는 프로그램

import java.util.Scanner;

public class ArrayAccess {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		int intArray[] = new int[5];  //배열 생성
		int max = 0; //현재 가장 큰 수
		System.out.println("양수 5개를 입력.");
		for(int i=0; i<5; i++) {
			intArray[i] = sc.nextInt();  //입력받은 정수를 배열에 저장
			if(intArray[i] > max) //intArray[i]가 현재 가장 큰수보다 크면
				max = intArray[i];
		}
		System.out.println("가장 큰 수는 " + max + "입니다.");
		
		sc.close();			
	}

}

 

- 배열의 크기, length 필드

length 필드를 이용하면 배열의 크기를 간단히 알아낼 수 있다. 

int intArray [] = new int[5];
int size = intArray.length;  //size는 5

배열 객체에 length 필드가  있기 때문에, 배열의 크기를 따로 관리할 필요가 없다. 

 

 

실습2 : 배열의 length 필드를 이용하여 배열 크기만큼 정수를 입력받고 평균을 구하는 프로그램 작성

import java.util.Scanner;

public class codingDuck{
	public static void main(String[] args) {
		int intArray[] = new int[5];  //배열의 선언과 생성
		int sum=0;
		
		Scanner sc = new Scanner(System.in);
		System.out.print(intArray.length + "개의 정수를 입력하세요>> ");
		for(int i=0; i<intArray.length; i++)
			intArray[i] = sc.nextInt();  //키보드에서 입력받은 정수 저장
		
		for(int i=0; i<intArray.length; i++)
			sum += intArray[i];   //배열에 저장된 정수 값 더하기
		
		System.out.println("평균은 " + (double)sum/intArray.length);
		sc.close();
	}

}

'Java' 카테고리의 다른 글

생성자(constructor)  (2) 2023.11.22
클래스와 객체  (2) 2023.11.22
클래스의 객체 생성 및 활용(Java)  (0) 2022.07.30
생성자(Java)  (0) 2022.07.07
다차원배열(Java)  (0) 2022.07.07