배열 (Arrays)

박주현·2022년 10월 12일
1

국비 공부

목록 보기
12/44
  • 공통된 자료형의 모음.

배열의 선언과 생성

int[] scores;	// 배열 선언

int scores[];	// 배열 선언
scores = new int[5];	// 배열 변수의 초기화
  • 배열의 선언과 초기화를 같이 하는 법
int[] scores = { 100, 90, 50, 95, 85 };

int[] scores = new int[] { 100, 90, 50, 95, 85 };

int[] scores;
scores = new int[] { 100, 90, 50, 95, 85 };

배열의 예

		Scanner inScanner = new Scanner(System.in);
		int[] scores = new int[5];
		int sum = 0;

		for (int i = 0; i < scores.length; i++) {
			scores[i] = inScanner.nextInt();
		}

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

		System.out.println("당신의 평균 점수는 ? " + (sum / scores.length));
		inScanner.close();

  • 다차원 배열의 선언과 초기화
int[][] scores = { 100, 90,50, 95, 85 }, { ... }, { ... };

다차원 배열의 예

double[][] interests = { { 3.2, 3.1, 3.2, 3.0 },
						 { 2.9, 2.8, 2.7, 2.6 },
						 { 2.7, 2.6, 2.5, 2.7 } };

		double[] sum1 = { 0.0, 0.0, 0.0 };
		double sum2 = 0.0;

		for (int i = 0; i < interests.length; i++) {
			for (int j = 0; j < interests[i].length; j++) {
				sum1[i] += interests[i][j];
			}

			System.out.printf("%d차년도 평균 이자율 = %.2f%%\n", i + 1, sum1[i] / 4);
			sum2 += sum1[i];
		}

		System.out.printf("3년간 평균 이자율 = %.2f%%\n", sum2 / (3 * 4));

  • 동적 배열
    ArrayList 객체 생성
ArrayList<참조 타입> 참조 변수 = new ArrayList<>();

참조 타입 : 기초 타입의 동적 배열이라면 Integer, Long, Double, Charater, Boolean 등을 사용한다.

ArrayList 원소 접근

  • 참조 변수.add(Data) : 데이터를 동적 배열에 원소로 추가.
  • 참조 변수.remove(IndexNo.) : 동적배열에서 인덱스 번호의 원소를 제거
  • 참조 변수.get(IndexNo.) : 동적 배열에서 인덱스 번호의 원소를 가져오기
  • 참조 변수.size() : 동적배열에 포함된 원소 개수

동적 배열의 예

		Scanner inScanner = new Scanner(System.in);
		ArrayList<Integer> scores = new ArrayList<>();
		int data;
		int sum = 0;

		while ((data = inScanner.nextInt()) >= 0) {	// 입력값 받기
			scores.add(data);
		}

		for (int i = 0; i < scores.size(); i++) {	// 기존 for문
			sum += scores.get(i);
		}
        
        for (int score : scores) {	// 향상된 for문
			sum += score;
		}

		System.out.println("평균 = " + (double) sum / scores.size());

참조형 변수와 기본형 변수의 차이

public static void main(String[] args) {
		int[] x = { 0 };
		int y = 0;
        
        // 호출 전의 x[0] = 0, y = 0
		System.out.println("호출 전의 x[0] = " + x[0] + ", y = " + y); 
        
		// increment method로 보냄
		increment(x, y);
        
        호출 후의 x[0] = 1, y = 0
		System.out.println("호출 후의 x[0] = " + x[0] + ", y = " + y);

	}

	public static void increment(int[] n, int y) {
    
    	// increment() 메서드 안에서 n[0] = 0, y = 0 ---> n[0] = 1, y = 1
		System.out.print("increment() 메서드 안에서 ");
		System.out.print("n[0] = " + n[0] + ", y = " + y + " ---> ");
		n[0]++;
		y++;
		System.out.println("n[0] = " + n[0] + ", y = " + y);
	}

0개의 댓글