JAVA - 배열 복사
2626 단어 JAVA
1 for 순환 하나씩 복사
for 순환 을 사용 하여 배열 의 모든 요 소 를 복사 하거나 지정 한 요 소 를 복사 합 니 다.코드 가 유연 하지만 배열 의 경계 이상 에 주의해 야 합 니 다.효율 이 낮다
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[5];
for(int i = 0;i < array1.length;i++)
{
array2[i] = array1[i];
}
2 System.arraycopy
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
원래 배열 의 srcPos 위치 에서 length 요 소 를 대상 배열 의 destPos 위치 로 복사 합 니 다.
src: 원본 배열
srcPos: 원본 배열 의 시작 위치
dest: 대상 배열
destPos: 대상 데이터 의 시작 위치
length: 복사 할 배열 요소 의 수
주: src 와 des 는 같은 유형 이거 나 유형 을 바 꿀 수 있 는 배열 이 어야 합 니 다.
int[] array1 = {1,2,3,4,5};
int[] array2 = {11,12,13,14,15,16};
System.arraycopy(array1, 1, array2, 2, 3);
3 Arrays.copyOf
public static int[] copyOf(int[] original, int newLength);
지정 한 배열 을 복사 하여 원래 배열 의 복사 본 으로 돌아 갑 니 다.
original: 원본 배열, byte, short, int, long, char, float, double, boolean
new Length: 새 배열 의 길이
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[3];
array2 = Arrays.copyOf(array1, 3);
System. arraycopy () 를 기반 으로 하기 때문에 효율 이 System. arraycopy () 보다 낮 습 니 다.
4 Arrays.copyOfRange
public static int[] copyOfRange(int[] original, int from, int to);
원래 배열 의 original 지정 부분 (from 에서 (to - 1) 비트 까지) 을 복사 하여 원래 배열 의 복사 본 으로 돌아 갑 니 다.
original: 원본 배열, byte, short, int, long, char, float, double, boolean
from: 원본 배열 이 복 사 된 시작 위치
to: 원본 배열 이 복 사 된 중지 위치 (to 자 체 는 포함 되 지 않 음)
System. arraycopy () 를 기반 으로 하기 때문에 효율 이 System. arraycopy () 보다 낮 습 니 다.
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[3];
array2 = Arrays.copyOfRange(array1, 2, 5);
5 clone 의 용법
clone () 방법 은 하나의 배열 을 다른 배열 로 참조 하 는 것 이 아니 라 새로운 배열 을 만 드 는 것 입 니 다.그러나 우 리 는 배열 자체 에 있어 서 그 요소 가 대상 일 때 원래 배열 의 모든 요소 에 저 장 된 것 이 대상 의 인용 이라는 것 을 알 고 있 기 때문에 복사 한 배열 은 자 연 스 럽 게 대상 의 인용 이기 때문에 배열 대상 요소 에 있어 clone () 방법 은 얕 은 복사 이다.
주: clone 방법 을 사용 하면 반환 값 형식 이 Object 형식 이 므 로 할당 시 강 한 전환 이 발생 하기 때문에 효율 이 낮 습 니 다.
int[] array1 = {1,2,3,4,5};
int[] array2;
array2 = array1.clone();
clone () 방법 은 1 차원 배열 만 직접 복사 할 수 있 습 니 다. 2 차원 배열 의 복사 에 대해 서 는 1 차원 에서 clone 함 수 를 호출 해 야 합 니 다.
int[][] a={{3, 1, 4, 2, 5}, {4, 2}};
int[][] b=new int[a.length][];
for(int i=0; i
효율: System. arraycopy > Arrays. copyOf > 순환 용 > clone
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.