ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] 배열 사용법
    프로그래밍/JAVA 2020. 9. 3. 00:37
    /* 20200903 - 자바 배열의 개념, 사용법 스터디 */
    
    import java.util.Arrays;
    import java.util.Scanner;
    import java.util.stream.IntStream;
    
    public class MainClass {
        public static void main(String[] args) {
            // 배열 선언 후 초기화
            int[] arr1 = new int[5];
            IntStream.range(0, arr1.length).forEach(i -> {
                arr1[i] = 100 * (i + 1);
                System.out.println("arr1[" + i + "] : " + arr1[i]);
            });
    
            // 배열 선언과 동시에 초기화
            int[] arr2 = {10, 20, 30, 40, 50};
            IntStream.range(0, arr2.length).forEach(i -> {
                arr2[i] = 10 * (i + 1);
                System.out.println("arr2[" + i + "] : " + arr2[i]);
            });
    
            // ArrayIndexOutOfBoundsException
            // System.out.println(arr2[6]);
    
            // 배열을 이용한 학사관리
            String[] name = {"박찬호", "이승엽", "박병호", "이병규", "류현진"};
            int[] score = new int[5];
            Scanner scanner = new Scanner(System.in);
            IntStream.range(0, name.length).forEach(i -> {
                System.out.println(name[i] + "의 점수를 입력하세요 : ");
                score[i] = scanner.nextInt();
            });
            IntStream.range(0, score.length).forEach(i -> {
                System.out.println(name[i] + "의 점수 : " + score[i]);
            });
    
    
            int[] arrAtt1 = {10, 20, 30, 40, 50};
            int[] arrAtt2 = null;
            int[] arrAtt3 = null;
    
            // 배열 길이
            System.out.println("arrAtt1.length : " + arrAtt1.length);
    
            // 배열 요소 출력
            System.out.println("arrAtt1 : " + Arrays.toString(arrAtt1));
    
            // 배열 요소 복사 (arrAtt1과 arrAtt3의 주소는 같지 않음, 즉 둘은 다른 객체)
            arrAtt3 = Arrays.copyOf(arrAtt1, arrAtt1.length);
            System.out.println("arrAtt3 : " + Arrays.toString(arrAtt3));
    
            // 배열 레퍼런스
            arrAtt2=arrAtt1;
            System.out.println("arrAtt1 = " + arrAtt1);
            System.out.println("arrAtt2 = " + arrAtt2); // arrAtt1 == arrAtt2
            System.out.println("arrAtt3 = " + arrAtt3); // arrAtt1 != arrAtt3
    
            // 다차원 배열
            int[][] arrMul = new int[3][2]; // 3행 2열의 2차원 배열
            System.out.println("행 길이 : " + arrMul.length);
            System.out.println("열 길이 : " + arrMul[0].length);
            
            scanner.close();
        }
    }

    추가로 알게된 점

    배열의 이름은 첫번째 인덱스의 주소값을 담고있다.

    배열 객체를 생성하고 난 후 배열의 길이는 불변이다.

    배열의 메모리 크기는 배열을 구성하는 데이터 자료형에 의해 결정된다.

    ex) int[] arr = new int[3]; 일 때 배열의 크기는 3이고, int형은 4byte이므로 총 12byte의 메모리 크기가 필요

     

    궁금한 점

    배열은 왜 객체로 선언될까?

    '프로그래밍 > JAVA' 카테고리의 다른 글

    [JAVA] 문자열 클래스  (0) 2020.09.07
    [JAVA] 추상 클래스와 인터페이스  (0) 2020.09.07
    [JAVA] final  (0) 2020.08.10
    [JAVA] static 멤버, static 메소드  (0) 2020.08.05
    [JAVA] 자바 리플렉션(Java Reflection)  (0) 2020.07.31

    댓글

Designed by Tistory.