프로그래밍 언어/자바의 정석 기초편

자바의 정석 기초편 ch5-24 Arrays로 배열 다루기

life grow 2022. 6. 16. 15:59

5-24 Arrays(클래스)로 배열 다루기

 

배열의 비교와 출력 - equals(), toString()

Arrays.toString(arr) : 배열을 문자열로 바꿔준다.

arr: 배열 이름

 

1차원 배열 출력은 Arrays.toString()을 쓴다.

2차원, 다차원 배열 출력은 Arrays.deeptoString()을 쓴다.

 

1차원 배열의 비교 equals()를 쓴다.

2차원,다차원 배열의 비교는 deepEquals()를 써줘야한다.

 

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

 

copyOfRange(arr, 2,4) 일 때 2,3만 출력된다.(to 생략)

배열의 정렬 - sort()

오름차순 정렬해준다.

 

System.out.println(str2D==str2D2);는 참조변수의 값을 비교하는 것이다.

서로 다른 배열이기 때문에 두 배열이 같은 메모리 상에 존재X라

항상 false가 나온다.

 

2차원 배열의 비교니까 

System.out.println(Arrays.deepEquals(str2D, str2D2)); 를 써주자.

 

copy

int[] arr2 = Arrays.copyOf(arr, arr.length);

arr을 복사해서 arr2를 만드는데 몇 개를 복사할까?

arr.length만큼: 배열 arr 전체를 복사해서 새로 만들겠다는 의미이다.

 

코드

import java.util.Arrays;
import java.util.Scanner;

public class lnterfaceEx {
	public static void main(String[] args) {		
		
		int[] arr = {0,1,2,3,4};
		int[][] arr2D = {
							{11,12}
						   ,{21,22}
						};
		System.out.println(Arrays.toString(arr));
		System.out.println(Arrays.deepToString(arr2D));
		
		String[][] str2D = {{"ccc", "bbb"},{"AAA", "BBB"}};
		String[][] str2D2 = {{"aaa", "bbb"},{"AAA", "BBB"}};
		
		System.out.println(Arrays.deepEquals(str2D, str2D2));
		
		int[] arr2 = Arrays.copyOfRange(arr, 1, 3);
		System.out.println(Arrays.toString(arr2));
		
		int[] arr3 = {0,2,4,1,3};
		System.out.println(Arrays.toString(arr3)); // 정렬전
		Arrays.sort(arr3);  // 배열 arr을 오름차순으로 정렬
		System.out.println(Arrays.toString(arr3)); // 정렬후
		
	}
}
 결과
 [0, 1, 2, 3, 4]
[[11, 12], [21, 22]]
false
[1, 2]
[0, 2, 4, 1, 3]
[0, 1, 2, 3, 4]