자바 배열 (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 |
댓글