gwooden_코린이

java_2차원 배열_221124(4일차) 본문

java/4일차

java_2차원 배열_221124(4일차)

gwooden22 2022. 11. 24. 14:27
728x90

2차원 배열 예시

(원래는 옆으로 쭉 이어진다.)

a[4][3] - 처음 값이 행이고 두번째 값이 열이다.

       
       
       

예)

      i    j 일때

arr[5][5]

[0][0] [0][1] [0][2] [0][3] [0][4]
[1][0] [1][1] [1][2] [1][3] [1][4]
[2][0] [2][1] [2][2] [2][3] [2][4]
[3][0] [3][1] [3][2] [3][3] [3][4]
[4][0] [4][1] [4][2] [4][3] [4][4]
[5][0] [5][1] [5][2] [5][3] [5][4]

package 배열2;

 

public class Sample01 {

 

        public static void main(String[] args) {

              

               int[][] arr = new int[5][5];

              

               int i, j;

               int num = 1;

              

               //배열방이 행과 2가지로 나뉘어서 for문도

              

               for(i=0; i<5; i++) {

                       for(j=0; j<5; j++) {

                             

                              arr[i][j] = num; //i배열방과 j배열방에 num값을 넣는다. 초기 num값은 1이다.

                              num++; //num 값을 증가시키지 않으면 배열방에는 1 들어가게 된다.

                             

                       }

               }

              

               for(i=0; i<5; i++) {

                       for(j=0; j<5; j++) {

                              System.out.print(arr[i][j] + " ");

                       }

                      

                       System.out.println();

               }

                      

 

        }

 

}

 


★풀이01

 

package 배열2;

 

public class Sample01 {

 

        public static void main(String[] args) {

              

               int[] arr1 = {1, 2, 3, 4, 5};

              

               int[][] arr2 = {

                              {1,2,3,4,5},

                              {7,8,9,10,11},

                              {3,4,5,6,7}

               };

              

               //위는 배열방 초기값 정해주는것

              

               int[][] arr = new int[5][5];

              

               int i, j;

               int num = 1;

              

               //배열방이 행과 2가지로 나뉘어서 for문도

              

               for(i=0; i<5; i++) { //옆으로 5

                       for(j=0; j<5; j++) {

                             

                              arr[j][i] = num; //i배열방과 j배열방에 num값을 넣는다. 초기 num값은 1이다.

                              num++; //num 값을 증가시키지 않으면 배열방에는 1 들어가게 된다.

                             

                      

                       }

               }

              

               for(i=0; i<5; i++) {

                      

                      

                       for(j=0; j<5; j++) {

                              System.out.print(arr[i][j] + " ");

                       }

                      

                       System.out.println();

               }

                      

 

        }

 

}

 


★풀이02

 

package 배열2;

 

public class Sample02 {

 

        public static void main(String[] args) {

              

               int[] arr1 = {1, 2, 3, 4, 5};

              

               int[][] arr2 = {

                              {1,2,3,4,5},

                              {7,8,9,10,11},

                              {3,4,5,6,7}

               };

              

              

              

               int[][] arr = new int[5][5];

              

               int i, j;

               int num = 1;

              

       

               //값을 넣을 자리 선정

              

               for(i=0; i<5; i++) {

                       for(j=0; j<=i; j++) {

                             

                              arr[i][j] = num;

                              num++;

                                                    

                       }

               }

              

               //출력 자리 선정

              

               for(i=0; i<5; i++) {

                              for(j=0; j<=i; j++) {

                                      System.out.print(arr[i][j] + " ");

                             

                       }

                             

                       System.out.println();

                             

                       }

 

 

        }

 

}

 


★풀이03

 

package 배열2;

 

public class Sample02 {

 

        public static void main(String[] args) {

              

               int[] arr1 = {1, 2, 3, 4, 5};

              

               int[][] arr2 = {

                              {1,2,3,4,5},

                              {7,8,9,10,11},

                              {3,4,5,6,7}

               };

              

              

              

               int[][] arr = new int[5][5];

              

               int i, j; //반복용 변수

               int num = 1; //배열안에 들어가는 숫자

               int x = 0, y=-1; //배열방 변수

               int a = 5; // 넣을 필요한 반복 횟수

               int s = 1; //스위치용 변수

       

               //값을 넣을 자리 선정

              

               for(i=0; i<5; i++) {

                       for(j=0; j<a; j++) { // 계속 5 반복하게

                              y = y + s;

                              arr[x][y] = num;

                              num++;

                             

                             

                                                    

                       }

                      

                       a--;

                               //위에 첫줄이 끝났고 num 값은 최종적으로 +이고 a값은 5 y 4 알맞게 떨어진다.

                               //반복 횟수를 줄여야 되므로 a--; 넣고

                             

                      

                       for(j=0; j<a; j++) {

                              x = x + s;

                              arr[x][y] = num;

                              num++;

                       }

              

 

                       s = s * -1;

              

        }

       

               for(i=0; i<5; i++) {

                       for(j=0; j<5; j++) {

                             

                              System.out.print(arr[i][j] + " ");

                       }

                      

                       System.out.println();

               }

       

 

       

}

 

}


★예제04

 

package 배열2;

 

 

 

public class Sample03 {

 

 

 

        public static void main(String[] args) {

 

                int[] arr1 = {1,2,3}; //원본 배열

                int[] arr2 = new int[5]; //복사할 배열

               

                for(int i=0; i<3; i++) {

                       arr2[i] = arr1[i];

                      

                }

               

                for(int i=0; i<5; i++) {

                       System.out.print(arr2[i] + " ");

                }

 

        }

 

 

}


package 배열2;

 

 

 

public class Sample03 {

 

 

 

        public static void main(String[] args) {

 

                int[] arr1 = {1,2,3}; //원본 배열

                int[] arr2 = new int[5]; //복사할 배열

               

                System.arraycopy(arr1, 0, arr2, 2, 3);

               

                //arc : 복사할 배열

                //srcPos : 방에 값부터 시작해서 복사하여 넣을 것인지

                //dest : 어디에 복사해서 넣을건지

                //destPos : 부터 복사하여 집어 넣을건지

                //length : 개를 넣을건지 (.lenfth 사용하면 배열방이 몇개가 있는지 자동으로 확인하고 전체 선택됨)

                      

       

               

                for(int i=0; i<5; i++) {

                       System.out.print(arr2[i] + " ");

                }

 

        }

 

}

 


package 배열2;

 

import java.util.Arrays;

 

public class Sample04 {

 

        public static void main(String[] args) {

 

               int[] arr1 = {1,2,3};

               int[] arr2 = null;

              

               arr2 = Arrays.copyOf(arr1, 5);

                              //arg0 : 복사할 배열

                              //arg1 : 복사할 배열을 5 짜리로 배열로 생성

              

               for(int i=0; i<5; i++) {

                       System.out.print(arr2[i] + " ");

               }

 

        }

 

}

728x90

'java > 4일차' 카테고리의 다른 글

java_객체지향 클래스_221124(4일차)  (0) 2022.11.24
java_난수출력_221124(4일차)  (0) 2022.11.24
java_정렬_221124(4일차)  (0) 2022.11.24
java_배열_221124(4일차)  (0) 2022.11.24
Comments