Arrays

홍정완·2022년 8월 9일
0

lay the ground work

목록 보기
5/18
post-thumbnail
  • Arrays 클래스에는 배열을 다루기 위한 다양한 메서드

Arrays 클래스의 모든 메서드는 클래스 메서드(static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있다.



binarySearch()


  • 전달받은 배열에서 특정 객체의 위치를 이진 검색 알고리즘을 사용하여 검색한 후, 해당 위치 반환

    • 이진 검색 알고리즘을 사용하므로, 미리 정렬되어 있어야만 제대로 동작한다.

int[] arr = new int[1000];

for(int i = 0; i < arr.length; i++) arr[i] = i;

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

// 출력 결과

// 500



copyOf()


  • 전달받은 배열의 특정 길이만큼을 새로운 배열로 복사하여 반환

    • 첫 번째 매개변수로 원본 배열 전달
    • 두 번째 매개변수로 복사할 요소 개수 전달
    • 원본 배열과 같은 타입의 새로운 배열 반환

새로운 배열의 길이가 원본 배열보다 길면, 나머지 요소는 기본값으로 채워진다.

배열 요소의 타입기본값
char'\u0000'
byte, short, int0
long0L
float0.0F
double0.0D
booleanfalse
배열, 인스턴스null

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

int[] arrTwo = Arrays.copyOf(arrOne, 3);

for(int i = 0; i < arrTwo.length; i++) {
	System.out.print(arrTwo[i] + " ");
}

int[] arrThree = Arrays.copyOf(arrOne, 10);

for(int i = 0; i < arrThree.length; i++) {
	System.out.print(arrThree[i] + " ");
}

// 출력 결과

// 1 2 3
// 1 2 3 4 5 0 0 0 0 0



copyOfRange()


  • 전달받은 배열의 특정 범위 요소를 새로운 배열로 복사하여 반환

    • 첫 번째 매개변수로 원본 배열 전달
    • 두 번째 매개변수로는 복사 시작 인덱스 전달
    • 세 번째 매개변수로는 마지막으로 복사될 배열 다음 인덱스 전달
      • 전달된 인덱스 바로 전까지의 배열 요소까지만 복사

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

int[] arrTwo = Arrays.copyOfRange(arrOne, 2, 4);

for (int i = 0; i < arrTwo.length; i++) {
    System.out.print(arrTwo[i] + " ");
}

// 출력 결과

// 3 4



sort()


  • 전달받은 배열의 모든 요소를 오름차순으로 정렬

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

Arrays.sort(arr);

for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

// 출력 결과

// 1 2 3 4 5



fill()


  • 전달받은 배열의 모든 요소를 특정 값으로 초기화

int[] arr = new int[10];

Arrays.fill(arr, 1);

for (int i = 0; i < arr.length; i++) {
    System.out.print(arr[i] + " ");
}

// 출력 결과

// 1 1 1 1 1 1 1 1 1 1 



contains()


  • 배열에 특정 값이 포함되어 있는지 확인

public String solution(String s) {

        String answer = "";
        int cnt = 0;
        String[] array = s.split("");

        for(String ss : array) {
            cnt = ss.contains(" ") ? 0 : cnt + 1;
            answer += cnt%2 == 0 ? ss.toLowerCase() : ss.toUpperCase(); 
        }
      return answer;
  }
profile
습관이 전부다.

0개의 댓글