➰
1. 배열
: 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것/ 많은 양의 값(데이터)을 다룰 때 유용. 배열의 각 요소는 서로 연속적임. (가장 간단한 데이터의 집합)
ex. int score1=0, score2=0, score3=0, score4=0, score5=0;
--> int [ ] score = new int[5]; (5개의 int값을 저장할 수 있는 배열을 생성)
--> int[] score = new int[5];
배열의 초기화 : 배열의 각 요소에 처음으로 값을 저장하는 것.
ex. int[] score = new int[]{50,60,70,80,90};
or int[] score = {50,60,70,80,90};
배열의 출력
ex. int[] iArr = {100,95,80,70,60};
System.out.println(iArr); // [I@14318bb]와 같은 형식의 문자열이 출력됨.
--> for(int i=0; i<iArr.length; i++) {
System.out.println(iArr[i]);
--> System.out.prinln(Arrays.toString(iArr));
cf. char[] chArr = {'a', 'b', 'c', 'd'};
System.out.println(chArr); //abcd가 출력됨.
배열의 활용
1) 총합과 평균
ex. 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
2) 최댓값과 최소값
ex. 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];
}
}
System.out.println("최대값:"+max);
System.out.println("최소값:"+min);
3) 섞기(shuffle)
ex. int[] numArr= {0,1,2,3,4,5,6,7,8,9};
System.out.println(Arrays.toString(numArr));
for (int i=0; i<100; i++) {
int n = (int)(Math.random()*10);
int tmp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = tmp;
}
System.out.println(Arrays.toString(numArr));
ex2. int [] ball = new int[45];
for (int i=0; i<ball.length; i++)
ball[i] = i+1;
int tmp = 0;
int j=0;
for (int i=0; i<6; i++) {
j = (int)(Math.random()*45);
tmp = ball[i];
ball[i]= ball[j];
ball[j]=tmp;
}
for (int i=9;i<6;i++)
System.out.printf("ball[%d] = %d%n", i, ball[i]);