[Kotlin/Java] System.arraycopy로 배열 복사하기

2022. 6. 23. 15:53·Android/Kotlin(Java)
반응형

이번에는 System.arraycopy에 대해 정리하겠습니다.

 

System.arraycopy란?

System.arraycopy는 메소드는 배열의 값들을 지정한 위치에서 갯수만큼 값을 복사할 수 있습니다.

 

System.arraycopy 메소드

public static native void arraycopy(Object src,  int srcPos,
                                    Object dest, int destPos,
                                    int length);

 

Object src -> 복사하려는 배열

int srcPos -> 복사하려는 시작 인덱스

Object dest -> 복사받으려는 배열 (붙여넣으려는)

int destPos -> 복사받으려는 시작 인덱스 (붙여넣으려는)

int length -> 복사하려는 갯수

 

만약, srcPos + length가 src.length보다 크거나 destPos + length가 dest.length보다 크다면 IndexOutOfBoundsException이 발생하며 복사는 실행되지 않습니다.

 

예시

import org.junit.jupiter.api.Test

class SystemArrayCopyTest {
    
    @Test
    fun `System arrayCopy`() {
        val array1 = intArrayOf(0, 1, 2, 3, 4)
        val array2 = intArrayOf(100, 101, 102, 103, 104)

        System.arraycopy(array1, 0, array2, 2, 3)
        println(array2.toList()) // [100, 101, 0, 1, 2]
    }
}

 

위의 코드처럼 작성하면 array1에 인덱스 0부터 2까지 복사해서 array2에 인덱스 2부터 4까지 붙여넣습니다.

 

실행결과

반응형
'Android/Kotlin(Java)' 카테고리의 다른 글
  • [Kotlin] String 원시 문자열(Raw String Literal)
  • [Kotlin] 자주 사용하는 코틀린 함수 정리(String, ArrayList, Queue, Stack)
  • [Kotlin] Comparable Interface 상속으로 클래스 비교하기
  • [Kotlin] Collections API - associate(), associateBy, associateWith(), groupBy()
seunghwaan
seunghwaan
공부한 내용을 정리하는 개발 기록 블로그
    반응형
  • seunghwaan
    SH's Devlog
    seunghwaan
  • 전체
    오늘
    어제
    • 분류 전체보기 (150)
      • Android (62)
        • Basic (17)
        • Kotlin(Java) (14)
        • UI & Animation (1)
        • Compose (2)
        • Coroutines (1)
        • Dependency Injection (6)
        • RxJava (8)
        • BLE (3)
        • TDD (2)
        • JetPack (1)
        • NextStep (4)
        • Error Log (3)
      • Flutter (14)
        • Basic (5)
        • Dart (1)
        • State Management (2)
        • Widgets (4)
        • Error and Tips (2)
      • iOS (8)
        • Basic (0)
        • Swift (8)
      • Web Frontend (6)
        • Basic (0)
        • JavaScript (5)
        • TypeScript (0)
        • React (1)
      • CS(Computer Science) (18)
        • Network (4)
        • Database (10)
        • Design Pattern (1)
        • Computer Architecture (3)
        • Operating System (0)
      • Cloud (6)
        • AWS (6)
      • DevOps (25)
        • GIT (4)
        • CI CD (8)
        • Linux (4)
        • Docker (9)
        • Error Log (0)
      • 코딩테스트 (10)
        • DB (6)
        • 알고리즘 (4)
      • Backend (1)
        • Spring (1)
      • Mac Tip (0)
      • Language (0)
        • English (0)
        • Japanese (0)
      • Temporary (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    시작하세요! 도커
    Jenkins
    Kotlin
    Network
    Dagger
    error
    Linux
    Android
    CI
    cognito
    Dependency Injection
    컴퓨터공학
    CICD
    Swift
    database
    JavaScript
    네트워크
    RxJava
    Computer Science
    BLE
    di
    FLUTTER
    MySQL
    IOS
    Algorithm
    docker
    AWS
    gradle
    상태 관리
    cs
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
seunghwaan
[Kotlin/Java] System.arraycopy로 배열 복사하기
상단으로

티스토리툴바