[java] 배열

yoonheekim·2022년 10월 13일

배열이란

  • 동일한 타입의 데이터를 여러 개 저장할 수 있는 메모리의 공간을 말한다.
  • 배열은 참조변수와 값을 저장하는 요소, 인덱스(배열의 번호)로 이루어져있다.
  • 변수와 다르게 저장공간이 연속적으로 이루어져있다.
  • 배열의 데이터타입에 따라 기본형 배열/참조형 배열(=객체 배열)로 나뉨
  • 배열도 메소드의 리턴 타입, 매개 변수가 될 수 있다. (추후에 정리)

1. 배열의 선언과 생성

// 1. int형 배열 arr을 선언 (배열을 다루기 위한 참조변수 선언)
int[] arr; 

//2. 배열의 생성 (실제 저장공간을 생성)	
arr = new int[5];	

// 3.배열의 세번째 요소에 100을 저장
arr[3] = 100;	

// 4.배열의 선언과 생성을 동시에 
int[] arr = new int[5];	

2. 배열의 초기화

// 배열의 값 초기화하기 1 : 기본방법
int[] arr = new int[3];
		arr[0] = 100;
		arr[1] = 200;
		arr[3] = 300;
 // 배열의 값 초기화하기 2 : 생성과 동시에 초기화하기
 int[] arr = new int[] {100,200,300}	//배열의 값 초기화하기 3 : 생성과 동시에 초기화 하기 (간략버전) 
 int[] arr = {100, 200, 300}	// new int[] 생략가능 
  • 배열을 생성할 때 정의한 size만큼 각각의 데이터를 저장할 수 있는 공간이 만들어진다.
  • 그 저장공간을 요소라고 하는데 각 요소에는 index가 부여된다. 배열의 초기화라는 건, 배열의 요소에 원하는 값을 저장하는 것.
  • 값을 저장 하지 않을 경우 자동초기화 된다.

<변수의 초기값>
int(정수) : 0
double(실수) : 0.0
boolean : false
참조형 : null

3. 배열의 출력

  • 배열 요소들의 값을 출력하기(for문을 이용)
int[] arr = new int[] {1, 2, 3, 4} //배열의 생성과 초기화 
for(i=0; i<arr.length; i++){	
	sys.out.println(arr[i]);	//배열에 저장된 값들을 출력 
 }
 
 //출력
 1
 2
 3
 4

4. 배열의 길이

  • 배열의 길이는 배열의 요소에 붙여진 일련번호를 뜻하는데, index(인덱스)라고도 한다.
  • index는 0부터 '배열의 길이-1'이다. => 인덱스가 1이 아닌 0부터 시작하기 때문이다. 그러니까 예를 들어 arr[5] 라는 배열의 index는 0부터 4까지이고, 5개의 요소(저장공간)를 가지고 있다는 것.

    배열이름.length

  • 배열의 요소에 관한 값을 읽을 수 있는 식
  • 배열을 다루는 식(for문)과 배열을 선언한 식의 인덱스가 서로 다를 경우(특히 선언 식의 index가 더 작을 경우) 에러가 발생하므로 for문의 조건식에는 '배열이름.length'를 사용하는 것이 좋다. 그래야 배열의 index가 변경되어도 자동으로 for문의 조건식도 변경되니까! 관리가 용이해진다.

5. 참조형 배열변수(객체 배열)

  • 객체를 배열로 관리함
  • 값을 초기화하면 기본형 배열의 경우 요소에 값이 저장되지만 참조형 배열의 경우, 배열의 요소에 참조하는 객체의 주소가 저장된다.
1) String 배열

(나중에 정리해서 추가하기)

2) Scanner 배열

<예제>
1. int형 배열 (myarr2)을 선언하기
2. Scanner로 입력받은 숫자 3개로 각 배열의 요소에 값을 저장하기
3. 모든 요소를 출력하기

		Scanner scan = new Scanner(System.in);
		int[] myarr2 = new int[3];
		
		//배열에 값을 저장하는 for문 
		for(int i=0; i<myarr2.length; i++) {
			System.out.println("숫자 입력");
			myarr2[i] = scan.nextInt();
		}
        
		//배열의 저장된 값을 출력하는 for문 
		for(int i=0; i<myarr2.length; i++) {
			System.out.println(myarr2[i]);
		}
		
3) Random 배열

<예제>

  • 1~45 랜덤수 5개를 저장할 수 있는 배열을 생성하고 작업하기
  1. Random객체를 이용해서 랜덤수 5개 배열에 저장하기
  2. 완료되면 배열에 저장된 값 출력하기
  3. 배열을 엑세스하기 위해 for문을 이용하기
  4. 값을 저장하기 위한 for와 값을 출력하기 위한 for문 각각 작업하기
    [출력형식]
    11 22 23 44 53
		//랜덤 객체와 배열 생성 
        Random rand = new Random();
		int[] arr = new int[5];
		
		// 1~45까지의 랜덤수를 배열에 저장하는 for문
		for(int i=0; i<arr.length; i++) {
			arr[i] = rand.nextInt(45)+1;
		}
		
       // 저장된 값을 출력하는 for문 
		for(int i=0; i<arr.length; i++) {
			System.out.print(arr[i]+"  ");
		}

6. 그 외 예제

  1. 배열의 선언과 생성과 초기화를 한번에 작업하기 - 98, 78, 88, 100, 98
  2. 배열에 저장된 모든 숫자의 총합과 평균을 구하기
		int[] myarr = new int[] {98, 78, 88, 100, 98};
		
		// 배열의 총 합을 구하는 for문 
        int sum = 0;
		for(int i=0; i<myarr.length; i++) {
			sum = sum + myarr[i];
		}
		
		System.out.println("총합 : "+sum);
		System.out.println("평균 : "+sum/myarr.length);
		
profile
개발 걸음마 떼기 👩🏻‍💻

0개의 댓글