danuri
오늘의 기록
danuri
전체 방문자
오늘
어제
  • 오늘의 기록 (307)
    • java (150)
      • java (33)
      • spring (63)
      • jpa (36)
      • querydsl (7)
      • intelliJ (9)
    • kotlin (8)
    • python (24)
      • python (10)
      • data analysis (13)
      • crawling (1)
    • ddd (2)
    • chatgpt (2)
    • algorithm (33)
      • theory (9)
      • problems (23)
    • http (8)
    • git (8)
    • database (5)
    • aws (12)
    • devops (10)
      • docker (6)
      • cicd (4)
    • book (44)
      • clean code (9)
      • 도메인 주도 개발 시작하기 (10)
      • 자바 최적화 (11)
      • 마이크로서비스 패턴 (0)
      • 스프링으로 시작하는 리액티브 프로그래밍 (14)
    • tistory (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • RDS
  • 등가속도 운동
  • POSTGIS
  • 마이크로서비스패턴
  • connection
  • AWS
  • S3
  • DDD
  • gitlab
  • 도메인 주도 설계
  • Java
  • Kotlin
  • docker
  • Bitmask
  • Thymeleaf
  • nuribank
  • PostgreSQL
  • SWAGGER
  • mockito
  • 자바 최적화
  • Saving Plans
  • Security
  • Jackson
  • 트랜잭션
  • JPA
  • Spring
  • CICD
  • reactive
  • ChatGPT
  • Database

최근 댓글

최근 글

hELLO · Designed By 정상우.
danuri

오늘의 기록

[Java] 배열의 복사
java/java

[Java] 배열의 복사

2021. 6. 23. 11:00

자바에서 배열을 복사할 때, for문을 사용해 일일이 복사해도 되지만, System.arraycopy()를 사용하면 보다 간단하고 빠르게 배열을 복사할 수 있다.

 

for문은 배열의 요소 하나하나에 접근해서 복사하지만, arraycopy()는 지정된 범위의 값들을 한 번에 통째로 복사한다. 각 요소들이 연속적으로 저장되어 있다는 배열의 특성 때문에 이렇게 처리하는 것이 가능한 것이다.

-> 배열의 복사는 for문보다 System.arraycopy()를 사용하는 것이 효율적이다.

 

for문을통한 배열의 복사를 arraycopy()로 바꾸면 다음과 같다.

//for문
for(int i = 0; i < num.length; i++) { newNum[i] = num[i]; }

//arraycopy()
System.arraycopy(num, 0, newNum, 0, num.length);

arraycopy()를 호출할 때는 어느 배열(1)의 몇 번째 요소(2)에서 어느 배열(3)의 몇 번째 요소(4)로 몇 개의 값(5)을 복사할 것인지 지정해줘야 하는데, 다음과 같이 생각하면 이해가 쉽다.

이 때, 복사하려는 배열의 위치가 적절하지 못하여 복사하려는 내용보다 여유 공간이 적으면 ArrayIndexOutOfBoundException 에러가 발생한다.

'java > java' 카테고리의 다른 글

[Java] Java 환경 변수 설정 - MacOS  (0) 2021.06.29
[Java] 연산자  (2) 2021.06.23
[Java] 배열의 출력  (0) 2021.06.23
[Java] 자바 데이터 타입, 변수 그리고 배열  (1) 2021.06.22
[Java] javac - error: error while writing 오류  (0) 2021.06.12
    'java/java' 카테고리의 다른 글
    • [Java] Java 환경 변수 설정 - MacOS
    • [Java] 연산자
    • [Java] 배열의 출력
    • [Java] 자바 데이터 타입, 변수 그리고 배열
    danuri
    danuri
    IT 관련 정보(컴퓨터 지식, 개발)를 꾸준히 기록하는 블로그입니다.

    티스토리툴바