array (배열)의 이해
연관된 데이터를 모아서 통으로 관리하기 위한 데이터 타입이다.
배열의 문법
규칙1.
먼저 몇개의 데이터가 들어갈지
⭐크기를 지정해야 사용할 수 있다.
단, 초기화하면 크기는 별도로 지정하지 않아도 된다.
⭐모든 프로그래밍 언어에서 인덱스 번호는 0부터 시작한다
⭐모든 인덱스의 길이는 n - 1이다.
package com.array;
public class ArrayTest1 {
//메인
public static void main(String[] args) {
/*
배열이란?
연관된 데이터 타입을 한번에 모아서
통으로 관리하기 위해 사용한다
배열의 문법
규칙1.
먼저 몇개의 데이터가 들어갈지
⭐크기를 지정해야 사용할 수 있다.
*/
// int[] numbers; //배열의 선언
// numbers = new int[3]; // 크기 지정 - int(4byte) 공간 4개 초기화
int[] numbers = new int[3]; // 👍 데이터 타입에 대괄호 [] 문법 허용
int unBoxes[] = new int[5]; // 변수 뒤에 대괄호 [] 문법 허용
/*
[][][] <= 값이 안들어있는 상태
배열 선언과 동시에 값을 초기화 해보자
초기화하면 크기는 별도로 지정하지 않아도 된다.
*/
int[] grades = new int[]{1, 2, 3}; // [1][2][3]
int[] grades2 = {1, 2, 3, 4, 5, 6}; // 👍 [1][2][3][4][5][6]
//5개 크기 double타입 배열 선언
// double[] heights = {100.5, 82.75, 65, 67.81, 102};
double[] doubles = new double[5];
//공간에 값 채우기
doubles[0] = 1.0;
doubles[1] = 1.1;
doubles[2] = 1.2;
doubles[3] = 1.3;
doubles[4] = 1.4;
/*
⭐모든 프로그래밍 언어에서
인덱스 번호는 0부터 시작한다
*/
/*
doubles 배열의 길이는 얼마일까? 5
doubles 인덱스의 길이는 얼마일까? 4
⭐모든 인덱스의 길이는 n - 1이다.
*/
// doubles[5] = 1.0;
int[] array1 = new int[57]; // 배열의 길이는 57, 인덱스의 길이는 56
int[] array2 = new int[123]; // 배열 123 인덱스 122
String[] stringBox = new String[3];
stringBox[0] = "가";
stringBox[1] = "나";
stringBox[2] = "다";
// stringBox[3] = "라"; //인덱스의 길이 조심
System.out.println(stringBox.length); // 3 = 배열의 길이
System.out.print(stringBox[0]);
System.out.print(stringBox[1]);
System.out.print(stringBox[2]);
System.out.println();
for (int i = 0; i < 3; i++) {
System.out.print(stringBox[i]); // 가 나 다
}
}//end of main
}//end of class

다양한 데이터 타입을 배열로 표현할 수 있다.
package com.array;
public class ArrayTest2 {
//메인
public static void main(String[] args) {
char[] alphabet = new char[26]; // 52바이트 공간
// alphabet[0] ='A'; alphabet[1] ='B'; alphabet[2] ='C'; alphabet[3] ='D';
// alphabet[4] ='E'; alphabet[5] ='F'; alphabet[6] ='G'; alphabet[7] ='H';
// alphabet[8] ='I'; alphabet[9] ='J'; alphabet[10] ='K'; alphabet[11] ='L';
// alphabet[12] ='M'; alphabet[13] ='N'; alphabet[14] ='O'; alphabet[15] ='P';
// alphabet[16] ='Q'; alphabet[17] ='R'; alphabet[18] ='S'; alphabet[19] ='T';
// alphabet[20] ='U'; alphabet[21] ='V'; alphabet[22] ='W'; alphabet[23] ='X';
// alphabet[24] ='Y'; alphabet[25] ='Z';
/*
char 타입은 원래 정수값이다.
컴퓨터는 0,1의 이진수로 데이터를 표현한다.
컴퓨터에서 문자를 표현하기 위해 문자표가 존재한다.
아스키코드, EUC KR 등
아스키코드
1바이트(0~127) 안에 1개 문자를 표현 가능
유니코드
전세계 통합 문자표
A 정수값 65
*/
// System.out.println(alphabet[0] + "" + (int)alphabet[0]); // A 65
// System.out.println(alphabet[1] + "" + (int)alphabet[1]); // B 66
/*
인코딩
문자를 컴퓨터가 이해할 수 있도록
숫자(코드 값)로 바꾸는 과정
디코딩
숫자(코드 값)를 사람이 이해할 수 있도록
문자로 바꾸는 과정을 말한다.
*/
int code1 = (int) 'A'; // 인코딩
char code2 = (char) 66; // 디코딩
//반복문을 통해 알파벳 A~Z까지 출력
for (int i = 65; i < 91; i++) {
System.out.print((char)i + " "); // A B C.. X Y Z
}
System.out.println();
// alphabet[]에 A부터 Z까지 담아보자
// for (int i = 0; i < 26; i++) {
// alphabet[i] = (char)(i + 65);
// System.out.println(alphabet[0] + "" + (int)alphabet[0]);
// }
for (int i = 0; i < 26; i++) {
alphabet[i] = (char)(i + 65);
System.out.print(alphabet[i] + " ");
}
for (int i = 0; i < 26; i++) {
}
}//end of main
}//end of class

배열과 난수값을 활용해 로또번호 뽑기
package com.array;
import java.util.Random;
public class ArrayTest3 {
public static void main(String[] args) {
/*
난수 발생 기능
랜덤한 숫자 하나를 만들어주는 도구
Random
*/
Random random = new Random();
random.nextInt(); // ± 22억 범위 난수 생성
int ranInt1 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
int ranInt2 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
int ranInt3 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
int ranInt4 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
int ranInt5 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
int ranInt6 = random.nextInt(45) + 1; // 1~45까지 랜덤숫자
// 배열과 for문을 활용해 써보기
int[] lotto = new int[6];
for (int i = 0; i < 6; i++) {
lotto[i] = (random.nextInt(45) + 1);
}
for (int i = 0; i < 6; i++) {
System.out.print("[" + lotto[i] + "] ");
}
}//end of main
}//end of for

로또번호 뽑기 연습, 중복번호 문제는 차차 배워가자
Array.sort(변수명); 오름차순정렬기능
package com.array;
import java.util.Arrays; // 정렬
import java.util.Random; // 난수
public class ArrayMainTest4 {
//메인
public static void main(String[] args) {
/*
배열은 연관된 데이터 타입을
통으로 관리하기 위해 사용될 수 있다.
배열은 보통 for 반복문과 함께 많이 사용된다.
배열을 사용해 랜덤 숫자 6개를 저장하고 출력해보자
랜덤한 숫자를 뽑아주는 도구를 준비하자
*/
Random random = new Random();
int[] intBoxes = new int[6];
for (int i = 0; i < intBoxes.length; i++) {
// i = 0, intBoxes[0] = 랜덤 숫자 하나 저장
// i = 2, intBoxes[1] = "
// i = 3, intBoxes[2] = "
// i = 4, intBoxes[3] = "
// i = 5, intBoxes[4] = "
// i = 6, intBoxes[5] = "
intBoxes[i] = random.nextInt(45) + 1;
System.out.print("[" + intBoxes[i] + "] ");
}
System.out.println();
//TODO 중복 문제 해결...
//자바 개발자들이 만들어준 정렬 기능이 있다. (배열)
Arrays.sort(intBoxes); // 배열을 오름차순으로 정렬
System.out.println(intBoxes);
for (int i = 0; i < intBoxes.length; i++) {
System.out.printf("[" + intBoxes[i] + "]\t"); // \t 탭간격의 의미
}
}//end of main
}//end of class

배열 작성 연습
package com.array;
import java.util.Random; // 랜덤 도구 호출
public class ArrayTest5 {
//main
public static void main(String[] args) {
// 문자열 배열 선언 및 초기화
String[] fruits = {"Apple", "Banana", "Orange", "Mango"};
System.out.println(fruits.length); // 배열길이 4
System.out.print(fruits[0] + " "); // 사과
System.out.print(fruits[1] + " "); // 바나나
System.out.print(fruits[2] + " "); // 오렌지
System.out.println(fruits[3]); // 망고
//랜덤 숫자를 뽑아 해당 번호 과일 출력
Random random = new Random();
// 0, 1, 2, 3
System.out.println(fruits[random.nextInt(4)]); // 랜덤 과일
int choice = random.nextInt(4);
System.out.println(fruits[choice]); // 랜덤 과일
}//end of main
}//end of class

'Java' 카테고리의 다른 글
| 배열 Array 을 활용한 자료정리 프로그램 연습 (0) | 2025.04.18 |
|---|---|
| 멤버변수 생성자 메서드 활용한 스타크래프트 놀이 v.1 (1) | 2025.04.17 |
| static 변수 개념 (0) | 2025.04.17 |
| 메서드를 활용한 아기 밥주기 게임 (0) | 2025.04.16 |
| getter, setter메서드와 this 키워드 (0) | 2025.04.16 |