Seren dev's blog
Published 2022. 12. 15. 15:17
자바의 정석 5장 : 배열 Programming/JAVA
이 글은 남궁성 님의 "자바의 정석: 기초편" 책을 읽고 정리한 내용입니다.

배열이란?

"같은 타입의 여러 변수를 하나의 묶음으로 다루는 것"

배열은 각 저장공간이 연속적으로 배치되어 있다.

int[] score; //배열 선언

score = new int[5]; //배열 생성

 

arr.length //배열의 길이이며 상수이다.

배열의 유효한 인덱스 범위가 아닌 인덱스로 접근하면 ArrayIndexOutOfBoundsException 예외가 발생한다.

 

배열 초기화

int[] score = new int[]{10, 20, 30};
int[] score = {10, 20, 30};

 

선언과 생성을 따로 하면 new int[] 생략 불가능

int[] score;
score = {10, 20, 30}; // 에러
score = new int[]{10, 20, 30};

 

배열의 출력

int[] arr = {10, 20, 30};
System.out.println(Arrays.toString(arr)); // [10, 20, 30]

System.out.println(arr); // [I@3ac3fd8b

char[] chars = {'a', 'b', 'c'};
System.out.println(chars); // abc

 

변수의 타입에 따른 기본값

자료형 기본값
boolean false
char '\u0000'
byte, short, int 0
log 0.0L
float 0.0f
double 0.0d 또는 0.0
참조형 null

 

String 배열

String[] name = new String[3]; // 참조형 변수의 기본값은 null이므로 null로 초기화

 

String 클래스는 char 배열에 기능(메서드)를 추가하여 확장한 것

String은 읽을 수만 있을 뿐 내용은 변경할 수 없다.

메서드
char charAt(int index)
int length()
String substring(int from, int to)
boolean equals(Object obj)
char[] toCharArray()

 

2차원 배열

        int[][] arr = {
                {1, 2, 3},
                {4, 5, 6}
        };

 

 

Arrays 클래스

배열의 출력

Arrays.toString(일차원 배열) : [0, 1, 2, 3, 4]

Arrays.deepToString(다차원 배열) : [[1, 2, 3], [4, 5, 6]]

        int[] arr = {0, 1, 2, 3, 4};
        int[][] arr2D = {
                {1, 2, 3},
                {4, 5, 6}
        };

        System.out.println(Arrays.toString(arr));
        System.out.println(Arrays.deepToString(arr2D));
[0, 1, 2, 3, 4]
[[1, 2, 3], [4, 5, 6]]

 

배열의 비교

Arrays.equals(일차원 배열, 일차원 배열) : 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false

Arrays.deepEquals(다차원 배열, 다차원 배열) : 배열에 저장된 모든 요소를 비교해서 같으면 true, 다르면 false

 

배열의 복사

Arrays.copyOf(int[] original, int newLength)

Arrays.copyOfRange(int[] original, int from, int to)

int[] arr = {0,1,2,3,4};
int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 = {0,1,2,3,4}
int[] arr3 = Arrays.copyOf(arr, 3); // arr3 = {0,1,2}
int[] arr4 = Arrays.copyOf(arr, 7); // arr4 = {0,1,2,3,4,0,0}
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 = {2,3}
int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 = {0,1,2,3,4,0,0}

 

배열의 정렬

Arrays.sort(배열)

728x90
profile

Seren dev's blog

@Seren dev

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!