자바 배열을 다루는 메소드에 대해서 공부하기. 주로 배열에서 Arrays 클래스의 메소드를 많이 사용한다.
Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있으며 java.util 패키지에 포함된다.
객체를 생성하지 않고도 바로 사용이 가능하며, import 문으로 java.util 패키지를 불러오고 나서 사용이 가능하다.
1. 배열의 출력
Arrays.toString(배열이름);
1차원 배열 안의 값을 쉽게 출력하는 방법
Arrays.deepToString(배열이름);
2차원 배열안의 값을 쉽게 출력하는 방법
FOR문을 사용한 배열 출력
2. 배열의 복사
깊은 복사
각각의 객체를 생성하여 그 객체의 값을 복사하여 배열이 서로 다른 객체를 가리키도록 함
Object.clone();
배열 복사의 보편적인 방법으로 깊은 복사이다.
Arrays.copyOf(arr1,arr.length);
arr1 배열 arr1.length 만큼을 복사한다.
Arrays.copyOfRange(arr1, 1, 3));
배열의 일부를 복사해서 새로운 배열을 만든다
얕은 복사
객체 주소만 복사되어 한쪽 배열의 요소를 수정하면 같이 수정 됨
System.arrayCopy(src, srcPos, dest, destPos, length)
자바에서 제공되는 배열 복사 메서드이다.
파라미터 값을 보면 (원본배열, 원본시작인덱스, 타겟배열, 타겟시작인덱스, 복사개수) 를 지정해주면된다.
3. 배열 정렬
배열 오름차순
Arrays.sort(배열이름);
배열 내림 차순
//1. 오름차순으로 배열 변경
Arrays.sort(배열이름);
//2. 내림차순으로 FOR문을 사용해 수정
or (int i = arr.length - 1; i >= 0; i--) {
System.out.print(arr[i]);
}
2차원 배열 정렬
int arr2[][] = {{2,90},{1,60},{3,20}}; // {1,60},{2,90},{3,20}
//Arrays.sort(arr2, new Comparator<T>() {
Arrays.sort(arr2, new Comparator<int[]>() {
//빨간 텍스트 클릭 하면 하단에 필요 내용 자동 추가됨
@Override
public int compare(int[] o1, int[] o2) {
// 정렬기준 작성 : 2차원 배열 안에 1차원 첫번째 인덱스를 기준으로 오름차순
// 두번째 값으로 기준 하려면 o1[1] < o2[1]
if(o1[0] < o2[0]) {
return -1; //변경하지 않게
}else if (o1[0] > o2[0]){
return 1; // 자리 변경
}else {
return 0;
}
}
});
System.out.println(Arrays.deepToString(arr2));
4. 문자 배열 비교
equals()
일차원배열에서 사용
deepEquals()
다차원 배열 사용이 가능하다.
'BackEnd > JavaProgram' 카테고리의 다른 글
디자인 패턴 (0) | 2023.02.23 |
---|---|
[ JAVA ] 객체 지향 / Extends 객체 간의 상속 관계 (0) | 2023.02.23 |
[ JAVA ] 자바 배열 문법 2 / 객체 배열 (0) | 2023.02.01 |
[ JAVA ] 자바 배열 문법 1 / 1차원 배열과 2차원 배열 (0) | 2023.02.01 |
[ JAVA ] 싱글톤 패턴 (Singleton pattern) (0) | 2023.02.01 |