배열의 길이 변경하기
배열은 한번 선언하면 길이를 변경할 수 없다,
따라서 더 큰 길이의 배열을 생성한 뒤 기존의 배열에 저장된 값을 새로운 배열에 복사하면 된다.
배열의 길이를 변경하는 방법:
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 |
---|