JAVA多次元配列

24432 ワード

整列🖌

  • は、1つの変数名に複数の値が含まれていることを示します.
  • [使用方法]


  • アレイの作成方法📑
    int[] stu = new int[2];  // 또는 int[] stu1 = {1,2,3};
     System.out.prinln(stu[0]);
     System.out.println(stu[1]); 
    

  • アレイしゅつりょくほう📑
     for( int i=0; i < stu.length; i++){ // for문 사용
        System.out.println(stu[i]);
     }
    
     for(int v : stu){ //향상된 for문 == forEach 문 사용
        System.out.println(stu[v]); 
     }
     
     int k =0;
     while(k<stu.length){
         System.out.prinln(stu[k];
         k++;  
     }

    たじゅうはいれつ🖌


  • 多次元配列で最もよく使われる2次元配列は、行列と同じ構造を有しています.
  • 次元配列のみを使用して、データストレージが限られていると感じたら、多次元配列を作成してデータを格納できます.
  • たとえば、複数の学生の英語、数学の試験点数を保存したい場合は、2 D配列を生成して保存できます.(構造は下図の通りです.)
  • の場合、2次元配列を使用せずに複数の1次元配列を宣言すると、効率は非常に低くなります.したがって、関連データは2次元配列で管理することが望ましい.
  • [使用方法]

  • キューブ・アレイの作成方法📑
  • /*  
    *   다차원배열 
    *   5명 학생들의 2번의 시험 점수를 각각 저장한다고 가정
    */
     int [][] stu = new int[5][2];  //이렇게 선언한 경우 내에는 0으로 기본값 설정
     // 앞의 []가 행의 개수를, 뒤의 []가 열의 개수를 의미한다고 생각!
  • の多次元配列に値を入れる📑
  • // stu[0][0] = 80; 이런식으로 대입 가능!
    
     for(int i=0;i<stu.length;i++) {
    			System.out.println(i+1+"번 학생의 성적 입력중...");
    			for(int j =0; j<stu[i].length;j++) {
    			  System.out.println("시험"+(j+1)+"번 성적 채점중..");
    			  stu[i][j] = rand.nextInt(101); //0~100번 중 랜덤 값 다차원 배열에 삽입
    			  System.out.println(stu[i][j]+"점 입니다!");
    			  System.out.println();
    			}
    			System.out.println();
    		}
  • 多次元配列出力法📑
  • // System.out.println(stu[0][0]); 이런식으로 출력 가능!
    for(int i=0;i<stu.length;i++) {
          System.out.println(i+1+"번 학생의 성적은...");
    			for(int j =0; j<stu[i].length;j++) {
    			  System.out.print(stu[i][j]+"점 입니다!");
    			}
    			System.out.println();
     }

    多次元配列の使用例📚

  • 5人の学生の2回の試験点数をそれぞれ貯蔵した.コードを作成し、特定の学生が探している特定の試験点数を出力します.ただし、配列範囲外の学生や試験が見つかった場合は、再入力できます.
  • package Arr;
    import java.util.Random;
    import java.util.Scanner;
    
    public class Test1 {
    
    	public static void main(String[] args) {
    
    
    		Random rand = new Random(); //ctrl +shift+o 누르면 해당 패키지 자동 입력
    			
    		int [][] stu = new int[5][2]; //다차원배열 생성
    		
            // 시험 성적 채점 & 배열에 저장
    		for(int i=0;i<stu.length;i++) {
    			System.out.println(i+1+"번 학생의 성적 력중...");
    			for(int j =0; j<stu[i].length;j++) {
    				System.out.println("시험"+(j+1)+"번 성적 채점중..");
    				stu[i][j] = rand.nextInt(101); //0~100번 중 
    				System.out.println(stu[i][j]+"점 입니다!");
    				System.out.println();
    			}
    			System.out.println();
    		}
      
    		// 몇번 학생의 몇번 시험 정적을 보시겠습니까?
    		// 시험번호 입력:3
    		// 시험 번호 입력:2
    		
    		Scanner sc = new Scanner(System.in); //입력을 위한 Scannner생성
    	    int stuNum,testNum =0;
    	    
    		System.out.println("몇번 학생의 몇 번 시험 성적을 보시겠습니까?");
    		do { // 잘못 입력시 재입력을 위한 do ~while문 사용
    			System.out.print("학생 번호 입력:");
    			stuNum = sc.nextInt();
    			if(stuNum > stu.length) {
    				System.out.println("잘못된 입력입니다.");
    			}
    		}while(stuNum>stu.length);
    		
    		do { // 잘못 입력시 재입력을 위한 do ~while문 사용
    			System.out.print("시험 번호 입력:");
    			testNum= sc.nextInt();
    			if(testNum > stu[0].length) {
    				System.out.println("잘못된 입력입니다.");
    			}			
    		}while(testNum>stu[0].length);
    		
            //시험 성적 출력
    		System.out.println(stuNum+"번 학생의 "+testNum+"번의 시험 성적은 "+ stu[stuNum-1][testNum-1]+"점 입니다.");
    	
    		sc.close();
    		
    	}
    }