새소식

Programming/Java

[Java] 배열의 출력, 비교, 복사와 정렬

 

배열의 출력 - Arrays.toString()

 

변수의 타입 중 기본형 8개는 실제 값을 저장하고, 참조형은 메모리 주소를 저장한다.

배열은 객체이며, 따라서 배열을 대입한 변수에는 메모리 주소가 저장된다.

int[] arr = {1, 2, 3, 4, 5};
System.out.print(arr); // 배열의 요소가 아닌 주소값이 출력됨

 

이처럼 배열의 변수를 print() 메서드로 출력하면 배열의 요소가 아닌 주소값이 나온다.

(예외적으로 char 타입은 요소가 출력됨)

 

배열의 요소를 콘솔에서 확인하려면 다음과 같은 방법을 사용한다.

import java.util.Arrays;

public class Test {
	public static void main(String[] args) {

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

        // 방법 1
        for(int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]); // 배열의 요소를 인덱스 순으로 하나씩 출력
        }

        // 방법 2
        System.out.println(Arrays.toString(arr)); // 출력값: [1, 2, 3, 4, 5]
        
    }
}

 

Array 클래스 사용 시 import를 해야 하는데,

단축키 ctrl + shift + o를 눌러 자동으로 import문을 추가할 수 있다. (Eclipse 기준)

 

 

 

배열의 비교 - Arrays.equals()

 

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

System.out.println(Arrays.equals(arr1, arr2)); // 출력값: false

 

Array 클래스의 equals() 메서드로 배열을 간단히 비교할 수 있다.

다차원 배열이라면 Arrays.deepEquals(arr1, arr2); 을 사용한다.

 

 

 

배열의 복사 - Arrays.copyOf(), Arrays.copyOfRange()

 

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

int[] arr2 = Arrays.copyOf(arr1, arr1.length); // 배열 전체 복사
System.out.println(Arrays.toString(arr2)); // [1, 2, 3, 4, 5]

int[] arr3 = Arrays.copyOf(arr1, 3); // 배열의 첫번째 요소부터 시작하여 총 3개의 요소 복사
System.out.println(Arrays.toString(arr3)); // [1, 2, 3]

int[] arr4 = Arrays.copyOf(arr1, 7); // 배열의 첫번째 요소부터 시작하여 총 7개의 요소 복사. 빈 공간은 변수의 기본값 저장
System.out.println(Arrays.toString(arr4)); // [1, 2, 3, 4, 5, 0, 0]

int[] arr5 = Arrays.copyOfRange(arr1, 1, 4); // arr[1] ~ arr1[4]를 복사하는데 마지막 요소(arr1[4])는 제외함
System.out.println(Arrays.toString(arr5)); // [2, 3, 4]

int[] arr6 = Arrays.copyOfRange(arr1, 0, 7); // arr[0] ~ arr[7] 복사(마지막 요소 제외). 빈 공간은 변수의 기본값 저장
System.out.println(Arrays.toString(arr6)); // [1, 2, 3, 4, 5, 0, 0]

 

 

 

배열의 정렬 - Arrays.sort()

 

int[] arr = {4, 5, 3, 1, 2};
System.out.println(Arrays.toString(arr)); // [4, 5, 3, 1, 2]

Arrays.sort(arr);
System.out.println(Arrays.toString(arr)); // [1, 2, 3, 4, 5]

 

Arrays.sort()를 사용하면 요소가 오름차순으로 정렬된다.

 

 

Contents

Copied URL!

Liked this Posting!