프로그래밍 언어/자바의 정석 기초편
자바의 정석 기초편 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]