Java의 배열 범위
Lovey Arora
2023년10월12일
- 다른 배열을 사용하여 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]