반응형
Recent Posts
Notice
Recent Comments
Link
250x250
«   2025/10   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

지식창고

[Java] Arrays 클래스와 Arrays 메소드 모음 본문

Language/Java

[Java] Arrays 클래스와 Arrays 메소드 모음

junz 2023. 1. 24. 17:38
728x90
반응형

Arrays Class ?

java.util.Arrays

Arrays는 java.util 클래스에서 lang 클래스 다음으로 가장 많이 사용되는 클래스이다.

이 클래스에는 배열을 다루기 위한 메소드들이 다양하게 포함되어 있다.


Arrays Class의 특징

모든 method는 Class method 이므로 객체를 생성하지 않고 바로 사용할 수 있다.

배열을 다루기 위한 메소드들의 집합이다.

사용하려면 반드시 import 해주어야 한다.

 



must add   java.util.Arrays

import java.util.Arrays;

 



java.util.Arrays Method

 

  • binarySearch(array, value)                -  이진 검색 알고리즘을 사용하여 value의 위치를 반환해준다. (※정렬이 되어 있어야 함)
  • copyOf(array, length)                          -  전달 받은 array를 length만큼 새로운 배열로 복사하여 반환한다.
  • copyOfRange(array, start, end)       전달 받은 array를 start <= New Array < end  까지 복사하여 반환한다.
  • fill(array, value)                                     -  array의 모든 요소를 value로 초기화 해준다.
  • fill(array, start, end, value)                -   start <= array[i] < end 를 value로 초기화 해준다.
  • sort(array)                                               -  array를 오름차순으로 정렬해준다.
  • equals(array1, array2)                        -  array1과 array2가 같은 배열인지 아닌지 확인하여 boolean으로 반환해준다.
  • asList(array)                                            -  array를 고정크기의 List로 변환하여 반환해준다.
  • hashCode(array)                                   -  array의 HashCode를 반환해준다.
  • toString(array)                                       -  array에 정의된 값들을 String으로 바꾸어 반환해준다.

 


메소드  사용  예시  코드

 

1 .   binarySearch(array, value)  -  값의 index를 찾을 때

 

이진 검색 알고리즘을 사용하여 value의 위치를 반환해준다.

이진 검색 알고리즘을 사용하기 때문에 배열이 먼저 정렬이 되어 있는 상태여야 한다.

만약 찾는 value값이 없으면 음수 값이 리턴 된다.

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

System.out.println(Arrays.binarySearch(arr, 3));

// 실행결과 : 2

 

 


2 .   copyOf(array, length)  -  배열을 복사할 때

 

array를 처음부터 length만큼 복사하여 반환해준다.

만약 array 배열의 크기보다 length보다 크다면 남는 부분은 기본값으로 채워지게 된다. ex) int형 -> 0

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

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

int arr3[] = Arrays.copyOf(arr, 10);

// arr2 = [1,2,3,4,5]
// arr3 = [1,2,3,4,5,0,0,0,0,0]

 

 



3 .   copyOfRange(array, start, end)  -  배열의 일부분을 복사 할 때

 

위와 비슷한 메소드이지만 배열의 시작부터 length만큼이 아니라 배열의 중간 부분을 복사할 수 있다.start부터 end까지 복사해서 반환해준다.여기서 start 인덱스는 복사에 포함되지만 end 인덱스는 포함되지 않는다.

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

int arr2[] = Arrays.copyOfRange(arr, 1, 3);

// arr2 = [2,3]

 

 


4 .   fill(array, value)  -  배열을 특정 값으로 모두 초기화 할 때

 

array의 원소들을 모두 value로 초기화 시켜준다.

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

Arrays.fill(arr, 10);

// arr = [10,10,10,10,10]

 


5 .   fill(array, start, end, value)  -  배열의 일부분을 특정 값으로 초기화할 때

 

위와 비슷한 메소드이지만 배열의 전부가 아닌 부분적으로 초기화 해줄 수 있다.

start 부터 end 바로 전까지 value로 초기화 시켜준다.

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

Arrays.fill(arr, 1, 4, 10);

// arr = [1,10,10,10,5]

 


6 .   sort(array)  -  배열을 정렬할 때 (오름차순)

 

배열을 오름차순으로 정렬해준다.

만약 배열의 자료형이 사용자가 지정한 Class 라면 해당 Class에 compareTo 메소드가 오버라이딩 되어 있어야 한다.

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

Arrays.sort(arr);

// arr = [1,2,3,4,5]

 


7 .   equals(array1, array2)  -  두 배열이 같은지 확인 할 때

 

두 배열이 같은지 확인해준다.

똑같은 값을 가지고 있다면 true.

다른 값을 가지고 있다면 false.

int arr[] = {1,2,3,4,5}
int arr2[] = {1,2,3,4,5}
int arr3[] = {5,7,8,4,5}

Arrays.equals(arr, arr2); // true

Arrays.equals(arr, arr3); // false

 


8 .   asList(array)  -  배열을 리스트로 변환할 때

 

배열을 List형태로 반환해준다. - Arrays의 private ArrayList로 반환해주는것. 따라서 java.util.ArrayList와 다르다.

반환 되는 List는 고정크기이다.

※ 때문에 이 메소드로 List를 생성하고 난 후에 List.add(value)로 값을 추가할 수 없다.

 

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

List<Integer> list = Arrays.asList(arr);

// list = [1,2,3,4,5]

 


9 .   hashCode(array)  -  배열의 해시코드를 구할 때 ()

 

배열이 가지고 있는 고유한 값인 해시코드를 반환해준다. (int 형)

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

int code = Arrays.hashCode(arr);

// code = arr만의 hashCode

 


10 .   toString(array)  -  배열을 출력할 때, 배열을 String으로 변환할 때

 

배열을 String형태로 바꾸어 반환해준다.

주로 배열의 내용을 출력할 때 사용한다.

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

System.out.println(Arrays.toString(arr));

// output : [1, 2, 3, 4, 5]

 

 

728x90
반응형
Comments