Java에서 다른 어레이에서 서브 어레이를 작성하는 방법
다른 어레이에서 서브 어레이를 작성하는 방법다음과 같은 첫 번째 배열에서 인덱스를 가져오는 방법이 있습니까?
methodName(object array, int start, int end)
루프를 만들고 내 프로그램을 망치고 싶지 않아
에러가 계속 발생:
기호 메서드 copyOfRange(int[),int,int)를 찾을 수 없습니다.
코드는 다음과 같습니다.
import java.util.*;
public class testing
{
public static void main(String [] arg)
{
int[] src = new int[] {1, 2, 3, 4, 5};
int b1[] = Arrays.copyOfRange(src, 0, 2);
}
}
사용할 수 있습니다.
JDK > 1.5
Arrays.copyOfRange(Object[] src, int from, int to)
JDK <= 1.5
System.arraycopy(Object[] src, int srcStartIndex, Object[] dest, int dstStartIndex, int lengthOfCopiedIndices);
Arrays.copyOfRange(..)
Java 1.6에서 추가되었습니다.최신 버전이 없을 수도 있습니다.업그레이드가 불가능한 경우System.arraycopy(..)
네, 시스템이라고 합니다.arraycopy(오브젝트, int, 오브젝트, int).
그래도 루프는 어딘가에서 실행됩니다.다만, 이 루프가 최적화되지 않는 한,REP STOSW
(이 경우 루프는 CPU 내부에 있습니다)
int[] src = new int[] {1, 2, 3, 4, 5};
int[] dst = new int[3];
System.arraycopy(src, 1, dst, 0, 3); // Copies 2, 3, 4 into dst
JDK > = 1.8
위의 모든 답변에 동의합니다.Java 8 Stream에도 좋은 방법이 있습니다.
int[] subArr = IntStream.range(startInclusive, endExclusive)
.map(i -> src[i])
.toArray();
이 방법의 장점은 다양한 유형의 "src" 어레이에 유용하고 스트림에 대한 파이프라인 쓰기 작업을 개선하는 데 도움이 된다는 것입니다.
이 질문에 대해서는 특별히 언급하지 않지만, 예를 들어 소스 어레이가double[]
그리고 저희는 이 노래를average()
서브 어레이의 경우:
double avg = IntStream.range(startInclusive, endExclusive)
.mapToDouble(index -> src[index])
.average()
.getAsDouble();
이 링크에서 다운로드할 수 있는 Apache Array Utils를 사용하면 이 방법을 쉽게 사용할 수 있습니다.
subarray(boolean[] array, int startIndexInclusive, int endIndexExclusive)
"syslog"는 예에 불과하며 모든 기본 Java 유형에 대한 메서드가 있습니다.
int newArrayLength = 30;
int[] newArray = new int[newArrayLength];
System.arrayCopy(oldArray, 0, newArray, 0, newArray.length);
코드가 맞기 때문에 오래된 JDK를 사용하고 있을 거라고 생각합니다.이 메서드의 javadoc에는 1.6부터 있었다고 나와 있습니다.명령줄에서 다음을 입력합니다.
java -version
1.6을 실행하고 있지 않은 것 같습니다.
버전 1.6보다 이전 버전의 java를 사용하고 있습니다.System.arraycopy()
대신.또는 환경을 업그레이드합니다.
언급URL : https://stackoverflow.com/questions/4439595/how-to-create-a-sub-array-from-another-array-in-java
'IT이야기' 카테고리의 다른 글
Vue는 Vuex의 커밋을 듣습니까? (0) | 2022.06.14 |
---|---|
beforeRouteEnter를 사용하여 vuej에서 비동기 데이터를 올바르게 로드하는 방법은 무엇입니까? (0) | 2022.06.14 |
Vue + Vuetify + vue-router: 페이지를 기반으로 도구 모음 내용 변경 (0) | 2022.06.14 |
Vue 라이프 사이클 훅 확장 (0) | 2022.06.13 |
최종 C 북 가이드 및 목록 (0) | 2022.06.13 |