배열의 길이 변경하기

배열은 한번 선언하면 길이를 변경할 수 없다,

따라서 더 큰 길이의 배열을 생성한 뒤 기존의 배열에 저장된 값을 새로운 배열에 복사하면 된다.

배열의 길이를 변경하는 방법:
1. 더 큰 배열을 새로 생성한다.
2. 기존 배열의 내용을 새로운 배열에 복사한다.

새로 배열을 생성해야 하는 상황이 가능한 적게 발생하도록 해야 하며, 기존의 2배 정도의 길이로 생성하는 게 좋다.

 

배열의 초기화

배열은 생성과 동시에 자동적으로 자신의 타입에 해당하는 기본값으로 초기화되므로 배열을 사용하기 전에 따로 초기화를 해주지 않아도 되지만, 원하는 값을 저장하려면 각 요소마다 값을 지정해 줘야 한다.

 

배열의 출력

배열에 저장된 값을 값을 확인할 때도 for문을 사용하면 된다.

 

int[] iArr = { 100, 95, 80, 70, 60,};

// 배열의 요소를 순서대로 하나씩 출력
for(int i=0; i<iArr.length; i++) {
	System.out.print(iArr[i]+",");
}
System.out.println();

 

 

배열의 복사

배열은 한번 생성하면 길이를 변경할 수 없기 때문에 이전 배열로부터 내용을 복사해야 한다.

public class ArrayEx04 {
	public static void main(String[] args) {
		char[] abc = { 'A', 'B', 'C', 'D' };
		char[] num = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
		System.out.println(abc);
		System.out.println(num);
		
		// 배열 abc와 num을 붙여서 하나의 배열(result)로 만든다.
		char[] result = new char[abc.length+num.length];
		System.arraycopy(abc, 0, result, 0, abc.length);
		System.arraycopy(num, 0, result, abc.length, num.length);
		System.out.println(result);
		
		// 배열 abc를 배열 num의 첫 번째 위치부터 배열 abc의 길이만큼 복사
		System.arraycopy(abc,  0,  num,  0,  abc.length);
		System.out.println(num);
		
		// number의 인덱스6 위치에 3개를 보사
		System.arraycopy(abc, 0, num, 6, 3);
		System.out.println(num);
	}
}

 

배열의 활용

public class ArrayEx05 {
	public static void main(String[] args) {
		int sum = 0;
		float average = 0f;

		int[] score = { 100, 88, 100, 100, 90 };

		for (int i = 0; i < score.length; i++) {
			sum += score[i];
		}

		average = sum / (float) score.length;
		System.out.println("총점 : " + sum);
		System.out.println("평균 : " + average);
	}
}
배열에서 총점과 평균을 구하기
총점 : 478
평균 : 95.6

 

 

 

public class ArrayEx06 {
	public static void main(String[] args) {
		int[] score = { 79, 88, 91, 33, 100, 55, 95 };

		int max = score[0];
		int min = score[0];

		for (int i = 1; i < score.length; i++) {
			if (score[i] > max) {
				max = score[i];
			} else if (score[i] < min) {
				min = score[i];
			}
		} // end of for
		System.out.println("최대값 :" + max);
		System.out.println("최소값 :" + min);
	} // end of main
}// end of class
변수 두개를 만들어서 배열의 최댓값, 최솟값저장
최대값 :100
최소값 :33

 

 

임의의 값으로 배열 채우기

import java.util.*;

public class ArrayEx09 {
	public static void main(String[] args) {
		int[] code = {-4, -1, 3, 6, 11};
		int[] arr = new int[10];
		
		for(int i=0; i < arr.length ; i++) {
			int tmp = (int)(Math.random() * code.length);
			arr[i] = code[tmp];
		}
		
		System.out.println(Arrays.toString(arr));
	}
}
배열의 값을 임의로 초기화하는 코드
실행할 때 마다 값이 달라진다

 

[3, -4, 3, 6, -4, -4, 11, -1, -4, 11]

 

 

public class ArrayEx11 {
	public static void main(String[] args) {
		int[] numArr = new int[10];
		int[] counter = new int[10];
		
		for(int i=0; i < numArr.length ; i++) {
			numArr[i] = (int)(Math.random() * 10);
			System.out.print(numArr[i]);
		}
		System.out.println();
		
		for(int i=0; i < numArr.length ; i++) {
			counter[numArr[i]]++;
		}
		
		for (int i=0; i < numArr.length ; i++){
			System.out.println( i +"의 개수 :"+ counter[i]);
		}
	}
}
길이가 10인 배열을 만들고 임의의 값으로 초기한다.
8811991509
0의 개수 :1
1의 개수 :3
2의 개수 :0
3의 개수 :0
4의 개수 :0
5의 개수 :1
6의 개수 :0
7의 개수 :0
8의 개수 :2
9의 개수 :3

'JAVA05강 배열(Array) > 배열(array)' 카테고리의 다른 글

배열(array)  (0) 2021.07.15

배열이란?

같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을'배열(array)라고 한다.

많은 양의 데이터를 손쉽게 저장하고 다루기 위해 필요하다.

 배열은 '같은 타입'의 여러 변수를 하나의 묶음으로 다루는 것

배열은 각 저장공간이 연속적으로 배치되어 있다는 특징이 있다.

 

배열의 선언과 생성

배열을 선언하는 방법은 원하는 타입의 변수를 선언하고 변수 또는 타입에 배열임을 의미하는 대괄호를 붙이면 된다.

선언방법 선언 예
타입[] 변수이름; int[]     score;
String[] name;
타입 변수이름[]; int     score[];
String name[]

 

배열의 생성

배열을 선언한 다음에는 배열을 생성해야 한다. 배열을 선언하는 것은

생성된 배열을 다루기 위한 참조변수를 위한 공간이 만들어질 뿐이고, 

배열을 생성해야만 비로소 값을 저장할 수 있는 공간이 만들어진다.

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

배열을 생성하기 위해서는 연산자'new'와 함께 배열의 타입과 길이를 지정해 주어야 한다.

 

1. int[] score; //int형 배열 참조변수 score을 선언한다.
2. score = new int [5]; //연산자'new'에 의해서 메모리의 빈 공간에 5개의 int형 데이터를 저장할 수 있는 공간이 마련된다.

 

배열의 길이와 인덱스

생성된 배열의 각 저장공간을 '배열의 요소'라고 하며 '배열 이름[인덱스]의 형식으로 배열의 요소에 접근한다.

인덱스(index)는 배열의 요소마다 붙여진 일렬번호로 각 요소를 구분하는 데 사용된다.

인덱스(index)의 범위는 0부터 '배열길이-1'까지.'

 

배열의 길이

배열을 생성할 때 괄호[]안에 배열의 길이를 적어줘야 하는데, 배열의 길이는 배열의 요소와 개수, 즉 값을 저장할 수 있는 공간의 개수다.

배열의 길이는 양의 정수로 나오며 최댓값은 int타입의 최댓값, 약 20억이다.

 

타입[] 배열 이름 = new 타입[길이];

int arr = new int [];

배열의 길이는 int범위의 양의 정수(0도포함)이어야 한다.

 

배열 이름. length

자바에서는 JVM이 모든 배열의 길이를 별도로 관리하며

'배열 이름. length'를 통해서 배열의 길이에 대한 정보를 얻을 수 있다.

배열은 한번 생성하면 길이를 변경할 수 없기 때문에, 이미 생성된 배열의 길이는 변하지 않는다.

따라서 배열 이름. length는 상수로 변경할 수 없다.

 

'JAVA05강 배열(Array) > 배열(array)' 카테고리의 다른 글

배열(array)의 활용  (0) 2021.07.17

+ Recent posts