SyntaxHighlighter.all(); [자바 Java] 배열의 복사 :: 게을러지고 싶어 부지런한 개발자

1. System 클래스의 arraycopy() 메소드 (배열의 길이를 마음대로 늘일 수 O)

2. Arrays 클래스의 copyOf() 메소드 (배열의 길이를 마음대로 늘일 수 O)

3. Object 클래스의 clone() 메소드(전 배열과 같은 길이의 배열밖에 만들 수 없음)

4. for 문과 인덱스를 이용한 복사

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
32
33
34
35
36
37
38
39
40
41
42
43
44
 
public class Main {
    public static void main(String[] args) {
        int[] arr1 = new int[]{12345};
        int newLen = 10;
        
        // 1. System 클래스의 arraycopy() 메소드
        int[] arr2 = new int[newLen];
        System.arraycopy(arr1, 0, arr2, 0, arr1.length);
        
        for (int i = 0; i < arr2.length; i++) {
            System.out.print(arr2[i] + " ");        // 1 2 3 4 5 0 0 0 0 0 
        }
        System.out.println();
        
        // 2. Arrays 클래스의 copyOf() 메소드
        int[] arr3 = Arrays.copyOf(arr1, 10);
        
        for (int i = 0; i < arr3.length; i++) {
            System.out.print(arr3[i] + " ");       // 1 2 3 4 5 0 0 0 0 0 
        }
        System.out.println();
        
        // 3. Object 클래스의 clone() 메소드
        int[] arr4 = (int[])arr1.clone();
        
        for (int i = 0; i < arr4.length; i++) {
            System.out.print(arr4[i] + " ");        // 1 2 3 4 5 
        }
        System.out.println();
        
        // 4. for 문과 인덱스를 이용한 복사
        int[] arr5 = new int[newLen];
        
        for (int i = 0; i < arr1.length; i++) {
            arr5[i] = arr1[i];
        }
        
        for (int i = 0; i < arr5.length; i++) {
            System.out.print(arr5[i] + " ");   // 1 2 3 4 5 0 0 0 0 0 
        }
    }
}
 
cs

+ Recent posts