Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 부트캠프
- 백엔드개발
- kb 취업교육
- KB국민은행
- 프로젝트멘토링
- kb취업교육
- 금융권 부트캠프
- 종합실무프로젝트
- 주말멘토링
- kb it's your life
- 기자단활동후기
- kb국민응ㄴ행
- kb it's your life 기자단
- sql
- 금융권 it
- 이차원배열
- 6기기자단활동후기
- SQL데이터타입
- kb 기자단
- kb it's your life 6기
- 금융권it
- kbit교육
- 반별이벤트
- sql내장함수
- kb네트워킹캠프
- 첫알고리즘평가
- 전문가특강
- prefixsum #C언어
- 백엔드개발교육과정
- 멀티캠퍼스
Archives
- Today
- Total
지식보부상님의 공부 일지
[10] System.arraycopy 본문
한 배열을 다른 배열에 copy 하고 싶으면 가장 먼저 생각나는 건
B = A 와 같이 할당하는 거죠!
그런데 B = A 라고 하게 되면, B의 내용을 바꾸면 A의 내용도 바뀌는 대참사가 벌어집니다!
물론 이런 상황을 원하는 경우도 발생하겠지만
일반적으로는 B의 내용이 바뀌더라도 A는 그 내용을 유지하는 경우가 훨씬 많죠!
1
2
3
4
5
6
|
int A[] = { 1, 3, 5, 7, 9 };
int[] B = new int[5];
B = A;
B[2] = 4;
for (int i = 0; i < 5; i++)
System.out.print(A[i] + " ");
|
cs |
위와 같은 코드를 보면 B[2]를 4로 바꿨고
line 5~6 에는 배열 A의 값을 출력하도록 했습니다!
결과는 어떻게 될까요??
다음과 같이 A[2]의 값도 4로 바뀌었음을 알 수 있습니다!
따라서 A와 B의 값이 서로 영향을 받지 않으면서
그 내용만을 copy 하고 싶은 경우에는 System.arraycopy(scrArray, i, destArray, j, n); 의 형태로
System.arraycopy를 사용하면 됩니다!!
scrArray는 source array,
i는 scrArray의 시작 index,
destArray는 destination array,
j는 destArray의 시작 index,
n은 copy할 개수를 의미합니다.
따라서 위와 같은 예시에서는 System.arraycopy(A, 0, B, 0, 5);
라고 하면
A의 0번째 index부터 5개를 B의 0번째 index에서 부터 쭉 내용을 복사하는게 되겠네요!
'JAVA를 자바' 카테고리의 다른 글
[프로그래머스] 비밀 코드 해독 (1) | 2025.07.18 |
---|---|
[11] class (1) | 2020.12.31 |
[9] 배열 (array) 선언, 초기값 (1) | 2020.12.29 |
[8] break와 continue (0) | 2020.12.29 |
[7] switch 문 (1) | 2020.12.29 |