JAVA

배열(Array)

jiyoon12 2025. 4. 24. 17:08
  • 자바에서 자료구조에 포함된다.
  • 동일한 데이터 타입의 요소들을 연속적으로 저장하는 구조이다.

package com.array;

public class ArrayTest1 {

    public static void main(String[] args) {

        // 배열이란? 연관된 데이터 타입을 한번에 모아서 통으로 관리하기 위해 사용할 수 있다.

        // 배열을 선언하는 문법
        // 규칙 1.
        // 배열은 반드시 먼저 몇 개의 데이터가 들어갈지 크기를 지정해야 사용할 수 있다.

//        int[] numbers; // 배열의 선언
//        numbers = new int[3]; // 4바이트 네모칸 3개 초기화

        int[] numbers = new int[3]; // 데이터 타입에 대괄호 문법 허용
        int intBoxes[] = new int[5]; // 변수 뒤에 대괄호 문법 허용

        //[][][] <--- 값이 아직 안들어간 상태이다.
        // 배열 선언과 동시에 값을 초기화 해보자.
        int[] grade = new int[]{1, 2, 3};
        // [1][2][3]
        int[] grades = {1, 2, 3, 4, 5, 6};
        // [1][2][3][4][5][6]

        // 문제 1
        // 5개의 크기를 가지는 double 타입 배열을 선언하시오.
        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.5;

        int[] array1 = new int[57];
        // 배열의 길이 57
        // 인덱스의 길이 56

        int[] array2 = new int[157];
        // 인덱스의 길이 156

        // String 배열 선언 방법
        String[] stringBox = new String[3];
        stringBox[0] = "가";
        stringBox[1] = "나";
        stringBox[2] = "다"; // 인덱스 길이 조심

        System.out.println("-------------------");
        System.out.println(stringBox.length);
        System.out.println(stringBox[0]);
        System.out.println(stringBox[1]);
        System.out.println(stringBox[2]);

        for (int i = 0; i < stringBox.length; i++) {
            // i = 0
            // i = 1
            // i = 2
            System.out.println(stringBox[i]);
        }
    }
}
package com.array;

public class ArrayTest2 {

    public static void main(String[] args) {

        char[] alphabet = new char[26];

        // char 타입은 원래 정수 값이다.
        // 컴퓨터는 0,1 이진수로 데이터를 표현한다.
        // 문자, 문자열을 아주 많이 다루고 있다.
        // 컴퓨터에서 문자를 표현하기 위해서 문자표라는 것을 사용한다.
        // 아스키코드, EUC-KR, 유니코드 - 문자표를 전세계 공통으로 사용하기 위해 만들었음
        // 아스키코드 : 1바이트 안에 하나의 문자를 다 표현할 수 있다.
        // [][][][][][][][] <---- 정수 0 ~ 127

//        alphabet[0] = 'A';
//        System.out.println((int) alphabet[0]);
//
//        alphabet[1] = 'B';
//        System.out.println((int) alphabet[1]);

        // 인코딩
        // 문자를 컴퓨터가 이해할 수 있는 숫자(코드값)로 바꾸는 과정
        int code1 = (int) 'A';

        // 디코딩
        // 숫자(코드값)를 사람이 읽을 수 있는 문자로 바꾸는 과정
        char code2 = (int) 66;


        // 반복문을 통해서 알파벳 A ~ Z 출력

        for (int i = 0; i < alphabet.length; i++) {
            alphabet[i] = (char) ('a' + i);
            System.out.println(alphabet[i]);
        }
    }
}
package com.array;

import java.util.Random;

public class ArrayTest3 {

    public static void main(String[] args) {


        // 난수 발생 기능 - 랜덤한 숫자를 하나 만들어 주는 도구
        // 자바 개발자들이 미리 만들어 준 기능

        Random random = new Random();
        // 문서 <-- 구글링 <-- AI
        // 0 ~ 44까지 랜덤한 숫자 하나 발생

        // 배열과 for 문을 활용해서 코드를 수정
        int ranInt1 = random.nextInt(45) + 1;
        int ranInt2 = random.nextInt(45) + 1;
        int ranInt3 = random.nextInt(45) + 1;
        int ranInt4 = random.nextInt(45) + 1;
        int ranInt5 = random.nextInt(45) + 1;
        int ranInt6 = random.nextInt(45) + 1;

        // 배열 규칙 - 배열을 미리 사용할 공간, 크기를 정해주어야 한다
        // xxx.length 를 활용
        int[] ranInt = new int[6];
        for (int i = 0; i < ranInt.length; i++) {
            ranInt[i] = random.nextInt(45) + 1;
            System.out.println(ranInt[i]);
        }
    }
}
package com.array;

import java.util.Arrays;
import java.util.Random;

public class ArrayTest4 {

    public static void main(String[] args) {

        // 배열을 사용해서 랜덤한 숫자 6개 저장 출력
        // 배열은 보통 for 반복문과 함께 많이 사용

        // 랜덤한 숫자를 뽑아주는 도구 준비
        Random random = new Random();


        // 배열은 연관된 데이터 타입을 하나 통으로 관리하기 위해 사용
        // 정수 값 6개를 담을 수 있는 배열 선언
        int[] ranInt = new int[6];
        for (int i = 0; i < ranInt.length; i++) {
            // i = 0, ranInt[0] = 랜점 숫자 하나 저장
            // i = 1, ranInt[1] = 랜점 숫자 하나 저장
            // i = 2, ranInt[2] = 랜점 숫자 하나 저장
            // i = 3, ranInt[3] = 랜점 숫자 하나 저장
            // i = 4, ranInt[4] = 랜점 숫자 하나 저장
            // i = 5, ranInt[5] = 랜점 숫자 하나 저장
            ranInt[i] = random.nextInt(45) + 1;
            System.out.println(ranInt[i]);
        }

        // 자바 개발자들이 만들어 준 정렬 기능 (배열)
        Arrays.sort(ranInt);

        System.out.println("-----------------");
        for (int i = 0; i < ranInt.length; i++) {
            // \ <-- 문자로 보지말고 명령어로 인식해 t <--- 탭 간격을 의미
            System.out.print(ranInt[i] + "\t");
        }
    }
}
package com.array;

import java.util.Random;

public class ArrayTest5 {

    public static void main(String[] args) {

        // 1. 문자열 배열 선언 및 초기화
        String[] fruits = {"apple", "banana", "orange", "mango"};
        System.out.println(fruits.length);

        // 랜덤한 숫자를 하나 뽑아서 해당하는 번호에 과일을 출력

        Random random = new Random();
        int choice = random.nextInt(4); // 0 ~ 3 까지 랜덤 숫자 출력
        System.out.println("오늘의 과일은 : " + fruits[choice]);
    }
}

'JAVA' 카테고리의 다른 글

배열을 이용한 도서 관리 프로그램  (0) 2025.04.24
배열 복습하기  (0) 2025.04.24
스타크래프트 만들어보기  (0) 2025.04.24
사용자 정의 생성자  (0) 2025.04.24
static  (0) 2025.04.24