본문 바로가기
JAVA

4일차// 배열 swap 데이터 바꾸기, 배열 복사, 배열 초기화

by aesup 2021. 1. 14.
728x90
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package codeit;
 
public class ascii {
    public static void main(String[] args) {
 
        
        
        
        //random 0 ~ 99 - > 45
        int r = (int)(Math.random()*100);
        System.out.println(r);
        //random 11 12 13 14 15
        int r1 = (int)(Math.random()*5+ 11;
        System.out.println(r1);
        
        // random 3 7 8 9 14//////////////////////////////////
        // 배열초기화
        
        int []arrRand = { 378914};
        //
        int rIndex = (int)(Math.random() * 5);
        System.out.println(arrRand[rIndex]);
        System.out.println(rIndex);
        
        
        
        
        
        //배열 복사//////////////////////////////////////////1
        int arrayNum[]= {111222333};//////////////////
        int arrayCopy[]= new int[arrayNum.length];////////
        
        
        //---value값을 복사 
        arrayCopy[0= arrayNum[0];
        arrayCopy[1= arrayNum[1];
        arrayCopy[2= arrayNum[2];
        
        System.out.println("값을복사: " + arrayCopy[2]);
 
        arrayCopy[2= 300;
        System.out.println(arrayNum[2]);
        
        //---address 복사(원본 데이터에 영향을 받음)
        // 1번처럼 배열을 카피한게 아니라 address를 카피한거다.
        int arrayNum2[] = { 111222333};///////////////
        int arrayCopy2[] = arrayNum2;      // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다.
        
        System.out.println("address" + arrayCopy2[1]);
        arrayCopy2[1= 12;
        System.out.println(arrayNum2[1]);
        
        
        
        
        
        //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다.
        
        int number1[] = { 112233};
        int number2[] = { 778899};
        
        //--
        int numAlias1[] = number1;
        int numAlias2[] = number2;
        
        
        int temp[];
        temp = numAlias1;
        numAlias1 = numAlias2;
        numAlias2 = temp;
        
        /* 노가다 방식
        int temp;
        temp = number1[0];
        number1[0] = number2[0];
        number2[0] = temp;
        
        temp = number1[1];
        number1[1] = number2[1];
        number2[1] = temp;
        
        
        temp = number1[2];
        number1[2] = number2[2];
        number2[2] = temp;
        
        System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]);
        System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]);
        
        */
        
        
        System.out.println(" " + numAlias1[0+ " " + numAlias1[1]+ " " + numAlias1[2]);
        System.out.println(" " + numAlias2[0+ " " + numAlias2[1]+ " " + numAlias2[2]);
        
        //변수가 너무 길어서 변수명을 재기입해
        //가독성을 높일 수 있다.
        int numberArrayPosition[] = {1,2,3}; 
        int numArrPosp[] = numberArrayPosition;
        
    }
}
 
 
cs

//random 0 ~ 99 - > 45 int r = (int)(Math.random()*100); System.out.println(r); //random 11 12 13 14 15 int r1 = (int)(Math.random()*5) + 11; System.out.println(r1); // random 3 7 8 9 14////////////////////////////////// // 배열초기화 int []arrRand = { 3, 7, 8, 9, 14}; // int rIndex = (int)(Math.random() * 5); System.out.println(arrRand[rIndex]); System.out.println(rIndex); //배열 복사//////////////////////////////////////////1 int arrayNum[]= {111, 222, 333};////////////////// int arrayCopy[]= new int[arrayNum.length];//////// //---value값을 복사 arrayCopy[0] = arrayNum[0]; arrayCopy[1] = arrayNum[1]; arrayCopy[2] = arrayNum[2]; System.out.println("값을복사: " + arrayCopy[2]); arrayCopy[2] = 300; System.out.println(arrayNum[2]); //---address 복사(원본 데이터에 영향을 받음) // 1번처럼 배열을 카피한게 아니라 address를 카피한거다. int arrayNum2[] = { 111, 222, 333};/////////////// int arrayCopy2[] = arrayNum2; // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다. System.out.println("address" + arrayCopy2[1]); arrayCopy2[1] = 12; System.out.println(arrayNum2[1]); //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다. int number1[] = { 11, 22, 33}; int number2[] = { 77, 88, 99}; //-- int numAlias1[] = number1; int numAlias2[] = number2; int temp[]; temp = numAlias1; numAlias1 = numAlias2; numAlias2 = temp; /*// 노가다 방식 int temp; temp = number1[0]; number1[0] = number2[0]; number2[0] = temp; temp = number1[1]; number1[1] = number2[1]; number2[1] = temp; temp = number1[2]; number1[2] = number2[2]; number2[2] = temp; System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]); System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]); */ System.out.println(" " + numAlias1[0] + " " + numAlias1[1]+ " " + numAlias1[2]); System.out.println(" " + numAlias2[0] + " " + numAlias2[1]+ " " + numAlias2[2]); //변수가 너무 길어서 변수명을 재기입해 //가독성을 높일 수 있다. int numberArrayPosition[] = {1,2,3}; int numArrPosp[] = numberArrayPosition; } }" target="_blank" rel="noopener" data-mce-href="http://

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package codeit;
 
public class ascii {
    public static void main(String[] args) {
 
        
        
        
        //random 0 ~ 99 - > 45
        int r = (int)(Math.random()*100);
        System.out.println(r);
        //random 11 12 13 14 15
        int r1 = (int)(Math.random()*5+ 11;
        System.out.println(r1);
        
        // random 3 7 8 9 14//////////////////////////////////
        // 배열초기화
        
        int []arrRand = { 378914};
        //
        int rIndex = (int)(Math.random() * 5);
        System.out.println(arrRand[rIndex]);
        System.out.println(rIndex);
        
        
        
        
        
        //배열 복사//////////////////////////////////////////1
        int arrayNum[]= {111222333};//////////////////
        int arrayCopy[]= new int[arrayNum.length];////////
        
        
        //---value값을 복사 
        arrayCopy[0= arrayNum[0];
        arrayCopy[1= arrayNum[1];
        arrayCopy[2= arrayNum[2];
        
        System.out.println("값을복사: " + arrayCopy[2]);
 
        arrayCopy[2= 300;
        System.out.println(arrayNum[2]);
        
        //---address 복사(원본 데이터에 영향을 받음)
        // 1번처럼 배열을 카피한게 아니라 address를 카피한거다.
        int arrayNum2[] = { 111222333};///////////////
        int arrayCopy2[] = arrayNum2;      // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다.
        
        System.out.println("address" + arrayCopy2[1]);
        arrayCopy2[1= 12;
        System.out.println(arrayNum2[1]);
        
        
        
        
        
        //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다.
        
        int number1[] = { 112233};
        int number2[] = { 778899};
        
        //--
        int numAlias1[] = number1;
        int numAlias2[] = number2;
        
        
        int temp[];
        temp = numAlias1;
        numAlias1 = numAlias2;
        numAlias2 = temp;
        
        /* 노가다 방식
        int temp;
        temp = number1[0];
        number1[0] = number2[0];
        number2[0] = temp;
        
        temp = number1[1];
        number1[1] = number2[1];
        number2[1] = temp;
        
        
        temp = number1[2];
        number1[2] = number2[2];
        number2[2] = temp;
        
        System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]);
        System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]);
        
        */
        
        
        System.out.println(" " + numAlias1[0+ " " + numAlias1[1]+ " " + numAlias1[2]);
        System.out.println(" " + numAlias2[0+ " " + numAlias2[1]+ " " + numAlias2[2]);
        
        //변수가 너무 길어서 변수명을 재기입해
        //가독성을 높일 수 있다.
        int numberArrayPosition[] = {1,2,3}; 
        int numArrPosp[] = numberArrayPosition;
        
    }
}
 
 
cs

//random 0 ~ 99 - > 45 int r = (int)(Math.random()*100); System.out.println(r); //random 11 12 13 14 15 int r1 = (int)(Math.random()*5) + 11; System.out.println(r1); // random 3 7 8 9 14////////////////////////////////// // 배열초기화 int []arrRand = { 3, 7, 8, 9, 14}; // int rIndex = (int)(Math.random() * 5); System.out.println(arrRand[rIndex]); System.out.println(rIndex); //배열 복사//////////////////////////////////////////1 int arrayNum[]= {111, 222, 333};////////////////// int arrayCopy[]= new int[arrayNum.length];//////// //---value값을 복사 arrayCopy[0] = arrayNum[0]; arrayCopy[1] = arrayNum[1]; arrayCopy[2] = arrayNum[2]; System.out.println("값을복사: " + arrayCopy[2]); arrayCopy[2] = 300; System.out.println(arrayNum[2]); //---address 복사(원본 데이터에 영향을 받음) // 1번처럼 배열을 카피한게 아니라 address를 카피한거다. int arrayNum2[] = { 111, 222, 333};/////////////// int arrayCopy2[] = arrayNum2; // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다. System.out.println("address" + arrayCopy2[1]); arrayCopy2[1] = 12; System.out.println(arrayNum2[1]); //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다. int number1[] = { 11, 22, 33}; int number2[] = { 77, 88, 99}; //-- int numAlias1[] = number1; int numAlias2[] = number2; int temp[]; temp = numAlias1; numAlias1 = numAlias2; numAlias2 = temp; /*// 노가다 방식 int temp; temp = number1[0]; number1[0] = number2[0]; number2[0] = temp; temp = number1[1]; number1[1] = number2[1]; number2[1] = temp; temp = number1[2]; number1[2] = number2[2]; number2[2] = temp; System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]); System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]); */ System.out.println(" " + numAlias1[0] + " " + numAlias1[1]+ " " + numAlias1[2]); System.out.println(" " + numAlias2[0] + " " + numAlias2[1]+ " " + numAlias2[2]); //변수가 너무 길어서 변수명을 재기입해 //가독성을 높일 수 있다. int numberArrayPosition[] = {1,2,3}; int numArrPosp[] = numberArrayPosition; } }">http://

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package codeit;
 
public class ascii {
    public static void main(String[] args) {
 
        
        
        
        //random 0 ~ 99 - > 45
        int r = (int)(Math.random()*100);
        System.out.println(r);
        //random 11 12 13 14 15
        int r1 = (int)(Math.random()*5+ 11;
        System.out.println(r1);
        
        // random 3 7 8 9 14//////////////////////////////////
        // 배열초기화
        
        int []arrRand = { 378914};
        //
        int rIndex = (int)(Math.random() * 5);
        System.out.println(arrRand[rIndex]);
        System.out.println(rIndex);
        
        
        
        
        
        //배열 복사//////////////////////////////////////////1
        int arrayNum[]= {111222333};//////////////////
        int arrayCopy[]= new int[arrayNum.length];////////
        
        
        //---value값을 복사 
        arrayCopy[0= arrayNum[0];
        arrayCopy[1= arrayNum[1];
        arrayCopy[2= arrayNum[2];
        
        System.out.println("값을복사: " + arrayCopy[2]);
 
        arrayCopy[2= 300;
        System.out.println(arrayNum[2]);
        
        //---address 복사(원본 데이터에 영향을 받음)
        // 1번처럼 배열을 카피한게 아니라 address를 카피한거다.
        int arrayNum2[] = { 111222333};///////////////
        int arrayCopy2[] = arrayNum2;      // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다.
        
        System.out.println("address" + arrayCopy2[1]);
        arrayCopy2[1= 12;
        System.out.println(arrayNum2[1]);
        
        
        
        
        
        //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다.
        
        int number1[] = { 112233};
        int number2[] = { 778899};
        
        //--
        int numAlias1[] = number1;
        int numAlias2[] = number2;
        
        
        int temp[];
        temp = numAlias1;
        numAlias1 = numAlias2;
        numAlias2 = temp;
        
        /* 노가다 방식
        int temp;
        temp = number1[0];
        number1[0] = number2[0];
        number2[0] = temp;
        
        temp = number1[1];
        number1[1] = number2[1];
        number2[1] = temp;
        
        
        temp = number1[2];
        number1[2] = number2[2];
        number2[2] = temp;
        
        System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]);
        System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]);
        
        */
        
        
        System.out.println(" " + numAlias1[0+ " " + numAlias1[1]+ " " + numAlias1[2]);
        System.out.println(" " + numAlias2[0+ " " + numAlias2[1]+ " " + numAlias2[2]);
        
        //변수가 너무 길어서 변수명을 재기입해
        //가독성을 높일 수 있다.
        int numberArrayPosition[] = {1,2,3}; 
        int numArrPosp[] = numberArrayPosition;
        
    }
}
 
 
cs
//random 0 ~ 99 - > 45 int r = (int)(Math.random()*100); System.out.println(r); //random 11 12 13 14 15 int r1 = (int)(Math.random()*5) + 11; System.out.println(r1); // random 3 7 8 9 14////////////////////////////////// // 배열초기화 int []arrRand = { 3, 7, 8, 9, 14}; // int rIndex = (int)(Math.random() * 5); System.out.println(arrRand[rIndex]); System.out.println(rIndex); //배열 복사//////////////////////////////////////////1 int arrayNum[]= {111, 222, 333};////////////////// int arrayCopy[]= new int[arrayNum.length];//////// //---value값을 복사 arrayCopy[0] = arrayNum[0]; arrayCopy[1] = arrayNum[1]; arrayCopy[2] = arrayNum[2]; System.out.println("값을복사: " + arrayCopy[2]); arrayCopy[2] = 300; System.out.println(arrayNum[2]); //---address 복사(원본 데이터에 영향을 받음) // 1번처럼 배열을 카피한게 아니라 address를 카피한거다. int arrayNum2[] = { 111, 222, 333};/////////////// int arrayCopy2[] = arrayNum2; // 이렇게 넘겨받으면 arryCopy2랑 arrayNum2랑 똑같다. 넘겨받으니 원본의 값이 영향을 받았다. System.out.println("address" + arrayCopy2[1]); arrayCopy2[1] = 12; System.out.println(arrayNum2[1]); //swap//데이터 전체를 바꿔주는 방식// 처리속도가 훨신빠르다. int number1[] = { 11, 22, 33}; int number2[] = { 77, 88, 99}; //-- int numAlias1[] = number1; int numAlias2[] = number2; int temp[]; temp = numAlias1; numAlias1 = numAlias2; numAlias2 = temp; /*// 노가다 방식 int temp; temp = number1[0]; number1[0] = number2[0]; number2[0] = temp; temp = number1[1]; number1[1] = number2[1]; number2[1] = temp; temp = number1[2]; number1[2] = number2[2]; number2[2] = temp; System.out.println(" " + number1[0] + " " + number1[1]+ " " + number1[2]); System.out.println(" " + number2[0] + " " + number2[1]+ " " + number2[2]); */ System.out.println(" " + numAlias1[0] + " " + numAlias1[1]+ " " + numAlias1[2]); System.out.println(" " + numAlias2[0] + " " + numAlias2[1]+ " " + numAlias2[2]); //변수가 너무 길어서 변수명을 재기입해 //가독성을 높일 수 있다. int numberArrayPosition[] = {1,2,3}; int numArrPosp[] = numberArrayPosition; } }

 

728x90