Java의 배열 범위

Lovey Arora 2023년10월12일
  1. 다른 배열을 사용하여 Java의 배열에서 요소 범위 가져오기
  2. copyOfRange() 메서드를 사용하여 Java의 배열에서 요소 범위 가져오기
  3. stream 객체를 사용하여 Java의 배열에서 요소 범위 가져오기
Java의 배열 범위

배열 슬라이싱은 기존 배열에서 요소 범위를 가져오기 위해 수행됩니다. 주어진 배열에서 하위 배열을 추출하는 것과 같습니다.

이 튜토리얼은 기존 배열에서 요소 범위를 가져오는 방법을 보여줍니다.

다른 배열을 사용하여 Java의 배열에서 요소 범위 가져오기

이 방법으로 필요한 요소를 새 배열에 복사합니다. 먼저 주어진 범위를 기반으로 배열의 시작 및 끝 인덱스를 찾아야 합니다. 그런 다음 크기의 빈 배열(endIndex - startIndex)을 만들어야 합니다. 마지막으로 주어진 배열의 요소를 슬라이스된 배열로 복사하고 인쇄합니다.

아래 주어진 코드를 참조하십시오.

import java.util.Arrays;

public class Main {
  public static int[] getSlice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = new int[endIndex - startIndex];
    for (int i = 0; i < slicedArray.length; i++) {
      slicedArray[i] = array[startIndex + i];
    }
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slicedArray = getSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(slicedArray));
  }
}

출력:

Slice of Array: [45, 33, 84, 4, 67, 73]

작은 크기의 배열만 다룰 때 이 방법을 사용하는 것이 좋습니다. 배열을 반복하고 다른 배열로 복사하려면 많은 메모리와 시간이 필요합니다.

copyOfRange() 메서드를 사용하여 Java의 배열에서 요소 범위 가져오기

이 메소드는 java.util.Arrays 클래스에 정의되어 있습니다. 이 메서드는 지정된 원래 배열의 특정 범위의 요소를 새 배열로 복사한 다음 이 배열을 반환합니다.

예를 들어,

import java.util.Arrays;
public class Main {
  public static int[] slice(int[] array, int startIndex, int endIndex) {
    int[] slicedArray = Arrays.copyOfRange(array, startIndex, endIndex);
    return slicedArray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] sliceArray = slice(array, startIndex, endIndex + 1);
    System.out.println("Slice of Array: " + Arrays.toString(sliceArray));
  }
}

출력:

Slice of Array: [45, 33, 84, 4, 67, 73]

stream 객체를 사용하여 Java의 배열에서 요소 범위 가져오기

이 방법에서 범위의 startIndexendIndex를 찾는 것으로 시작합니다. 그런 다음 range() 메서드를 사용하여 필요한 범위의 요소를 Primitive Stream으로 변환해야 합니다. 다음으로 map() 메서드는 원래 배열의 범위에 필요한 요소를 매핑하는 데 사용됩니다. 마지막으로 toArray() 메서드는 매핑된 배열을 배열로 변환하고 인쇄합니다.

아래 주어진 코드를 참조하십시오.

import java.util.Arrays;
import java.util.stream.IntStream;
public class Main {
  public static int[] findSlice(int[] array, int startIndex, int endIndex) {
    int[] slcarray = IntStream.range(startIndex, endIndex).map(i -> array[i]).toArray();
    return slcarray;
  }
  public static void main(String args[]) {
    int[] array = {87, 56, 29, 11, 45, 33, 84, 4, 67, 73};
    int startIndex = 4, endIndex = 9;
    int[] slcarray = findSlice(array, startIndex, endIndex + 1);
    System.out.println("Slice of array for the specified range is: " + Arrays.toString(slcarray));
  }
}

출력:

Slice of Array: [45, 33, 84, 4, 67, 73]

관련 문장 - Java Array