Java의 배열 범위
    
    
            Lovey Arora
    2023년10월12일
    
    Java
    Java Array
    
- 다른 배열을 사용하여 Java의 배열에서 요소 범위 가져오기
- 
          
            copyOfRange()메서드를 사용하여 Java의 배열에서 요소 범위 가져오기
- 
          
            stream객체를 사용하여 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의 배열에서 요소 범위 가져오기
이 방법에서 범위의 startIndex 및 endIndex를 찾는 것으로 시작합니다. 그런 다음 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]
        튜토리얼이 마음에 드시나요? DelftStack을 구독하세요 YouTube에서 저희가 더 많은 고품질 비디오 가이드를 제작할 수 있도록 지원해주세요. 구독하다