CH 5) 배열

sim·2023년 3월 1일

자바의 정석

목록 보기
10/20


1. 배열
: 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것/ 많은 양의 값(데이터)을 다룰 때 유용. 배열의 각 요소는 서로 연속적임. (가장 간단한 데이터의 집합)
ex. int score1=0, score2=0, score3=0, score4=0, score5=0;
--> int [ ] score = new int[5]; (5개의 int값을 저장할 수 있는 배열을 생성)

  1. 배열의 선언과 생성 :
    1) 선언 : 배열을 다루기 위한 참조변수의 선언
  • 타입[ ](subtype) 변수이름;
  • 타입 변수이름[];
    2) 생성 : 실제 저장공간을 생성
  • 변수이름 = new 타입[길이]; (타입의 값 길이를 저장할 수 있는 배열 생성)

--> int[] score = new int[5];

  1. 배열의 인덱스 : 각 요소(저장공간)에 자동으로 붙는 일련번호
  • index의 범위는 0부터 '배열길이-1'까지.
  1. 배열의 길이
  • 배열이름.length - 배열의 길이(int형 상수)/ 배열은 한번 생성하면 실행동안 그 길이를 바꿀 수 없음.
    ex. int[] arr = new int[5]; //길이가 5인 int배열
    int tmp = arr.length; // arr.length의 값은 5이고, tmp에 5가 저장됨.
  1. 배열의 초기화 : 배열의 각 요소에 처음으로 값을 저장하는 것.
    ex. int[] score = new int[]{50,60,70,80,90};
    or int[] score = {50,60,70,80,90};

  2. 배열의 출력
    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가 출력됨.

  3. 배열의 활용
    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]);

profile
sim

0개의 댓글