본문 바로가기
Java

자바 배열 (Java Array)

by wanttosleep1111 2023. 1. 17.

자바 배열 (Java Array)

 

1. 자료 구조(Data Structure) : 대량 데이터를 효율적으로 관리하기 위한 메커니즘

 

2. 배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 자료 구조

  • 배열 선언

 

 

  • 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조
  • 같은 종류의 데이터들이 순차적으로 저장되는 공간 (반복문을 이용하여 처리하기에 적합한 자료 구조)
  • 배열 안의 데이터 접근 : 배열의 변수명과 [ ]사이에 인덱스 번호를 사용하여 접근

 

  • 배열의 크기
    배열 레퍼런스 변수를 선언할 때 결정되지 않음
    배열의 크기는 배열 생성 시에 결정되며, 나중에 바꿀 수 없음 (고정적)
    배열의 크기는 배열의 length라는 공간에 저장 (for문에 이용가능)

 


 

▶ 예제

정수형 데이터 5개를 저장할 수 있는 배열 array 선언

배열 안의 모든 데이터를 임의의 값으로 초기화 (1~100까지의 수)

배열 안의 데이터 중 홀수의 값만 출력하고 총 몇 개인지 출력

package onlyPractice;

import java.util.Random;

public class onlyPractice {

	public static void main(String[] args) {		
		
		// 정수형 배열 생성
		int[] array = new int[5]; 
		
		// 랜덤수 모듈
		Random rd = new Random();
		
		// 홀수 개수 카운트
		int count = 0;
		
		//랜덤 수 중 홀수만 찾기
		System.out.print("array에 들어있는 홀수는 ");
		for (int i = 0; i<array.length; i++) {
			int rdNum = rd.nextInt(100)+1;
			array[i] = rdNum;
			if (array[i]%2 != 0) {
				count++;
				System.out.print(array[i]+" ");
			}
		}
		System.out.println("이며,");
		System.out.println("총 "+count+"개 입니다.");

	}
}

 

▶ 예제

정수형 데이터 5개를 저장할 수 있는 배열 array 선언

배열 안의 모든 데이터를 임의의 값으로 초기화 (1~10까지의 수)

배열 안의 데이터 중 가장 큰 값을 출력

package onlyPractice;

import java.util.Random;

public class onlyPractice {

	public static void main(String[] args) {		
		
		// 정수형 배열 생성
		int[] array = new int[5]; 
		
		// 랜덤수 모듈
		Random rd = new Random();
		
		int num = 0;
		
		System.out.print("배열 안에 들어 있는 값 : ");
		for (int i = 0; i<array.length; i++) {
			int rdNum = rd.nextInt(10)+1;
			array[i] = rdNum;
			System.out.print(array[i]+" ");
			if (num<rdNum) {
				num = rdNum;
			}
		}
		System.out.println();
		System.out.println("가장 큰 값은 "+num+"입니다.");

		
	}
}

 

▶ 예제

정수형 데이터 5개를 저장할 수 있는 배열 array 선언

배열 안의 데이터를 모두 입력 받기

입력한 점수를 출력

최고 점수, 최저 점수, 총합, 평균 출력

package onlyPractice;

import java.util.Scanner;

public class onlyPractice {

	public static void main(String[] args) {		
		
		Scanner sc = new Scanner(System.in);
		
		// 정수형 배열 생성
		int[] array = new int[5];
		int num = 0;
		
		// 배열에 입력값 넣어주기
		for (int i = 0; i<array.length; i++) {
			System.out.print((i+1)+"번째 입력 >> ");
			num = sc.nextInt();
			array[i] = num;
		}
		System.out.print("입력된 점수 : ");
		
		// 배열 출력
		for (int i = 0; i<array.length; i++) {
			System.out.print(array[i]+" ");
		}
		
		// 최고 점수, 최저 점수
		int max = array[0];
		int min = array[0];
		
		for (int i = 0; i<array.length; i++) {
			if (max < array[i]) {
				max = array[i];
			}
		}
		
		for (int i = 0; i<array.length; i++) {
			if (min > array[i]) {
				min = array[i];
			}
		}
		
		System.out.println();
		System.out.println("최고 점수 : "+max);
		System.out.println("최저 점수 : "+min);
		
		// 총합, 평균
		int sum = 0;
		for (int i = 0; i<array.length; i++) {
			sum += array[i];
		}
		System.out.println("총합 : "+sum);
		System.out.println("평균 : "+(sum/array.length)); 
	}
}

 

▶ 예제

로또 번호 추첨

정수형 데이터 5개를 저장할 수 있는 배열 array 선언

배열 안의 데이터를 모두 임의의 값으로 초기화 (1~10까지의 수)

단, 배열에 중복된 값 제거

배열 안의 데이터를 모두 출력

package onlyPractice;

import java.util.Random;

public class onlyPractice {

	public static void main(String[] args) {		
		
		
		Random rd = new Random();
		
		int[] lotto = new int[5];
		
		for (int i = 0; i<5; i++) {
			lotto[i] = rd.nextInt(10)+1;
			for (int j = 0; j<i; j++) {
				// 이전 로또 번호와 비교하여 같으면 i값에 -1을 해서 앞쪽부터 다시 검사
				if (lotto[j] == lotto[i]) {
					i--;
				}
			}
		}
		System.out.println("로또번호뽑기");
		for (int i = 0; i<5; i++) {
			System.out.print(lotto[i]+" ");
		}
	}
}

 

▶ 예제

수박게임

문자형 데이터를 저장할 수 있는 배열 array를 선언 후, '수,'박'으로 초기화

사용자로부터 숫자를 입력 받고, 입력 받은 개수만큼 '수','박'을 순차적으로 출력

package onlyPractice;

import java.util.Scanner;

public class onlyPractice {

	public static void main(String[] args) {		
		

		Scanner sc = new Scanner(System.in);
		
		char[] data = {'수','박'};
		
		System.out.print("숫자를 입력하세요 >> ");
		int count = sc.nextInt();
		
		for (int i = 1; i<=count; i++) {
			if (i%2==0) {
				System.out.print(data[1]);
			} else {
				System.out.print(data[0]);
			}
		}
	}
}

'Java' 카테고리의 다른 글

자바 메소드(Java Method)  (0) 2023.01.28
자바 이차원 배열(Java Two-dimensional array)  (0) 2023.01.22
자바 반복문(Java Loop)  (0) 2023.01.16
자바 조건문(Java Conditional Statement)  (0) 2023.01.09
자바 연산자(Java Operator)  (0) 2023.01.08

댓글