본문 바로가기

Java/본격 Java 컬렉션

[Java] Arrays

Arrays 클래스
 - 배열을 다루는 데 유용한 메소드들을 제공하는 클래스로 생성자 없이 모든 메소드가 static으로 선언되어 있습니다.
 - 주요 메소드
 리턴 메소드명 및 설명
 int binarySearch(검색대상배열[] a, 검색객체) : 검색대상 배열에서 검색객체를 검색하는 메소드로 이분법을 이용 단, 이분법의 특성상 반드시 검색대상 배열은 오름차순으로 정렬이 되어있어야 함.
 복사문자열 copyOf(원본배열, int 복사할 요소 갯수) : 원본배열의 처음부터 지정한 갯수만큼 복사하여 다른 배열로 생성
 복사본배열 copOfRange(원본배열, int from, int to) : 원본배열의 from부터 to - 1까지 복사하여 다른 배열로 생성
 boolean equals(배열1, 배열2) : 배열1과 배열2의 모든 데이터가 동일한지 여부를 리턴(1차원 배열에서만 사용가능)
 boolean deepEquals(배열1, 배열2) : equals()와 같으면 다차원 배열에서 사용
 void fill(배열, 채울 값) : 배열의 각 요소에 지정할 값을 채움
 void sort(배열) : 배열의 각 요소들을 오름차순으로 정렬시킴
 String toString(배열) : 배열의 각 요소들의 값들을 문자열로 리턴
 String deepToString(배열) : toString() 같으나 다차원 배열용

.

.

import java.util.*;

class ArraysEx{
	public static void main(String[] args) {
		int[] arr = {0, 1, 2, 3, 4};
		int[][] arr2D = {{11, 12, 13}, {21, 22, 23}};

		System.out.println("arr : " + Arrays.toString(arr)); // arr : [0, 1, 2, 3, 4]
		System.out.println("arr2D : " + Arrays.deepToString(arr2D)); // arr2D : [[11, 12, 13], [21, 22, 23]]

		int[] arr2 = Arrays.copyOf(arr, arr.length); // arr2 : [0, 1, 2, 3, 4]
		// arr배열의 처음부터 arr.length - 1까지 복사하여 arr2로 생성
		// arr배열을 arr2에 넣음 > arr2 = arr;도 가능

		int[] arr3 = Arrays.copyOf(arr, 3); // arr3 : [0, 1, 2]
		// arr배열의 처음부터 3개의 요소를 복사하여 arr3로 생성

		int[] arr4 = Arrays.copyOf(arr, 7); // arr4 : [0, 1, 2, 3, 4, 0, 0]
		// 부족한 요소는 0으로 채워 생성(int형 배열이므로 기본값 0을 사용)

		int[] arr5 = Arrays.copyOfRange(arr, 2, 4); // arr5 : [2, 3]
		// arr배열의 2번부터 4 - 1번까지 잘라내어 arr5로 생성

		int[] arr6 = Arrays.copyOfRange(arr, 0, 7); // arr6 : [0, 1, 2, 3, 4, 0, 0]
		// 부족한 요소는 0으로 채워 생성(int형 배열이므로 기본값 0을 사용)

		System.out.println("arr2 : " + Arrays.toString(arr2)); 
		System.out.println("arr3 : " + Arrays.toString(arr3)); 
		System.out.println("arr4 : " + Arrays.toString(arr4)); 
		System.out.println("arr5 : " + Arrays.toString(arr5)); 
		System.out.println("arr6 : " + Arrays.toString(arr6)); 

		int[] arr7 = new int[5];
		Arrays.fill(arr7, 9);
		// arr7배열의 요소들을 9로 채워넣음
		System.out.println("arr7 : " + Arrays.toString(arr7)); // arr7 : [9, 9, 9, 9, 9]

		String[][] str1 = { {"aa", "bb"}, {"AA", "BB"} };
		String[][] str2 = { {"aa", "bb"}, {"AA", "BB"} };
		System.out.println(Arrays.equals(str1, str2)); // false
		// Arrays.equals() : 1차원 배열의 요소들을 비교하는 메소드
		System.out.println(Arrays.deepEquals(str1, str2)); // true
		// Arrays.deepEquals() : 다차원 배열의 요소들을 배교하는 메소드

		char[] chArr = {'A', 'D', 'C', 'B', 'E'};
		System.out.println("chArr : " + Arrays.toString(chArr)); // chArr : [A, D, C, B, E]
		System.out.println("index of 'B' : " + Arrays.binarySearch(chArr, 'B')); // index of 'B' : -2
		// 'B'를 찾지 못했으며 이유는 이분법(binarySearch)으로 검색하려면 무조건 오름차순으로 정렬되어 있어야 함
		System.out.println(" = After sotring = ");
		Arrays.sort(chArr);
		// chArr배열을 오름차순으로 정렬
		System.out.println("chArr : " + Arrays.toString(chArr)); // chArr : [A, B, C, D, E]
		System.out.println("index of 'B' : " + Arrays.binarySearch(chArr, 'B')); // index of 'B' : 1
		// chArr배열이 오름차순으로 정렬되어 있기 때문에 이분법(이진검색)으로 'B'의 위치 인덱스를 찾아 출력

	}
}

.

.

Arrays 주요 메소드들을 사용해봤다.

1차원 배열과 다차원 배열에 사용해야할 메소드들이 조금씩 다르긴 하지만

잘 숙지하고 사용하면 될것같다.

 

728x90
반응형

'Java > 본격 Java 컬렉션' 카테고리의 다른 글

[Java] ArrayList 사용해보기  (0) 2020.07.13
[Java] Collection_desc  (0) 2020.07.03
[Java] Iterator<E>  (0) 2020.07.03
[Java] Stack - Queue  (0) 2020.07.03
[Java] LinkedList  (0) 2020.07.03