ジャワ議政石5枚

4609 ワード

第5章配列
配列とは?
「アレイは、同じタイプの複数の変数を組み合わせています.」
int[ ] score = new int[5];
アレイの宣言と作成
配列の宣言
参照変数を宣言して配列を処理
メソッドの宣言

  • タイプ[]変数名;//Java
    int[ ] score;
    String[ ] name;

  • タイプ変数名[];//C言語
    int score[ ];
    String name[ ];
  • アレイの作成
    타입[ ] 변수이름;          //배열을 선언(배열을 다루기 위한 참조변수 선언)
    변수이름 = new 타입[길이]; //배열을 생성(실제 저장공간을 생성)
    配列のインデックス
  • は、各要素(記憶領域)の(シーケンス)番号に自動的に付加される.
  • "インデックス(index)の範囲は0から"アレイ長-1"
  • である.
  • int[ ] score = new int[5];//五長int配列
  • //배열의 인덱스
    int[] score;  //배열 score를 선언(참조변수)
    score = new int[5]; // 배열의 생성(int저장공간 x 5)
    
    int[] score = new int[5];  //한 줄로
    配列の長さ
  • シナリオ名.lengthアレイの長さ(int定数)
  • 「配列が作成されると、実行中に長さを変更することはできません.」
  • int[] arr = new int[5]; //길이가 5인 int 배열
    int tmp = arr.length; //arr.length의 값은 5이고 tmp에 5가 저장된다.
    
    //배열의 모든 요소 출력
    int[] score = new int[6];
    for(int i = 0; i < score.length; i++)
    	System.out.println(score[i]);
    イニシアチブの初期化
    アレイ内の各要素に値を最初に保存します.
    配列は自動的に0に初期化されます.
    int[] score = { 50, 60, 70, 80, 90 }; //선언과 초기화를 한줄로 하는 경우
    アレイ出力
    int[] iArr = { 100, 95, 80, 70, 60 };
    System.out.println(iArr); //에러. 다른 값이 출력됨
    
    //int배열 출력 1번 방법
    for(int i=0; i<iArr.length; i++) {  //배열의 요소를 순서대로 하나씩 출력
    	System.out.println(iArr[i]);
    }
    
    //int배열 출력 2번 방법
    System.out.println(Arrays.toString(iArr));
    
    //문자는 바로 출력 가능
    char[] chArr = { 'a', 'b', 'c', 'd' };
    System.out.println(chArr); //OK. abcd가 출력
    System.out.println(Arrays.toString(chArr)); //OK.
    配列の使用
    総和と平均:配列されたすべての要素を加算して総和と平均を求める.
    --例5--
    最大値と最小値:配列の要素で最大値と最小値を検索します.
    --例5--
    ブレンド配列の要素の順序を繰り返し変更します.(数値を混合してロット番号を生成)
    --例5-4--
    --例5-5--
    Stringアレイの宣言と作成
    String[] name = new String[3]; //3개의 문자열을 담을 수 있는 배열을 생성한다.
    
    //[예제5-6]
    String[] name = { "Kim", "Park", "Yi" };
    
    String[] strArr = {"가위", "바위", "보"};
    System.out.println(Arrays.toString(strArr));
    
    for(int i=0;i<10;i++) {
    	int tmp = (int)(Math.random()*3);
    	System.out.println(strArr[tmp]);
    }
    
    コマンドラインによる入力の受信
    コマンドラインに入力した値は、文字列配列に含まれ、渡されます.
    2 Dアレイ
    テーブル形式のデータを格納する配列
    int[][] score = new int[4][3]; //4행 3열의 2차원 배열을 생선한다.
    
    //2차원 배열의 인덱스
    int[][]score = new int[4][3]; 
    
    //2차원 배열의 초기화
    int[][] arr = { {1, 2, 3}, {4, 5, 6} };
    
    int[][] arr = { {1, 2, 3},  //직관적으로
    	            {4, 5, 6} 
    	          };
    Stringクラス
  • Stringクラスchar[]とメソッド(機能)を組み合わせた
    Stringクラス=char[]+メソッド(機能)
  • Stringクラスでは内容を変更できません.(read only)
    新規参照のアドレスのみ変更します.
  • Stringクラスの主な方法
    String str = "ABCDE";
    char ch = str.charAt(3); //문자열 str의 4번째 문자 'D'를 ch에 저장
    
    String str = "012345";
    String tmp = str.substring(1, 4); // str에서 index범위 1~4의 문자 1,2,3을 반환(4는 안들어감)
    System.out.println(tmp); // "123"이 출력된다.
    
    String str = "ABCDE";
    char ch = str.charAt(4);
    String str2 = str.substring(1,4);
    String str3 = str.substring(1);
    String str4 = str.substring(1, str.length());
    Arraysを使用したアレイの処理
    文字列の比較と出力-equals()、toString()
    Mathクラス:数学に関するメソッドを収集します.
    int[] arr = {0,1,2,3,4,};
    int[][] arr2D = {{11,12}, {21,22}};
    
    System.out.println(Arrays.toString(arr)); //[0, 1, 2, 3, 4] (1차원)
    System.out.println(Arrays.deepToString(arr2D)); //[[11,12], [21,22]] (2차원 이상)
    
    String[][] str2D = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
    String[][] str2D2 = new String[][]{{"aaa", "bbb"}, {"AAA", "BBB"}};
    
    System.out.println(Arrays.equals(str2D, str2D2)); //false (1차원배열 비교)
    System.out.println(Arrays.deepEquals(str2D, str2D2)); //true (2차원 이상 배열 비교)
    配列のコピー-copyOf()、copyOfRange()
    int[] arr = {0,1,2,3,4};
    int[] arr2 = Arrays.copyOf(arr, arr.length); //arr2=[0,1,2,3,4]
    int[] arr3 = Arrays.copyOf(arr, 3); //arr3=[0,1,2]
    int[] arr4 = Arrays.copyOf(arr, 7); //arr4=[0,1,2,3,4,0,0]
    int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //(arr,from,to) arr5=[2,3], 4는 불포함
    int[] arr6 = Arrays.copyOfRange(arr, 0, 7); //(arr,from,to) arr6=[0,1,2,3,4,0,0], 4는 불포함
    配列のソート-sort()
    int[] arr = {3,2,0,1,4};
    Arrays.sort(arr)); //배열 arr을 정렬한다.
    System.out.println(Arrays.toString(arr))); //[0,1,2,3,4]