第4章配列

26425 ワード


はいれつ


配列は、同じタイプの複数のデータを順次格納するデータ構造である.
並べ替えられた最初の要素は0番です.
ex) a[0], a[1], a[2], a[3]
  • 配列の作成順序1
  • public class Main {
    	public static void main(String[] args) {
        	int[] score;          // 배열변수의 선언
            score = new int[5];   // 요소의 작성과 대입
        }
    }
  • 配列の作成順序2
  • public class Main {
    	public static void main(String[] args) {
        	int[] score = new int[5];
        }
    }
  • アレイの初期化
  • public class Main {
    	public static void main(String[] args) {
        	// 배열의 요소는 자동으로 초기화된다.
            // 5개의 요소가 전부 0으로 초기화된다.
            int[] score = new int[5];
            System.out.println(score[0]);   // 에러가 아닙니다.
        }
    }

    配列と例外


    範囲外の要素を使用すると例外が発生します.
    例外:エラー.
    public class Main {
     	public static void main(String[] args) {
            int[] score = {20, 30, 40, 50, 80};
            int sum = score[1] + score[2]
            		+ score[3] + score[4] + score[5];
            int avg = sum / score.length;
            System.out.println("총점 " + sum);
            System.out.println("평균 " + avg);    
        }
    }
    
    int[]score={20,30,40,50,80}は5つの値を有する.
    上にも言ったように、配列はゼロから始まります.
    int sum = score[1] + score[2] + score[3] + score[4] + score[5]
    いいえ.
    int sum = score[0] + score[1] + score[2]+ score[3] + score[4]
    にならなければならない.

    アレイとfor文


    通常for文を使用します.
    public class Main {
    
        public static void main(String[] args) {
            int [] score = { 20, 30, 40, 50, 80 };
            for (int i = 0; i < score.length; i++) {
                System.out.println(score[i]);
                
            }
        }
    }
    強化されたfor文の使用
    public class Main {
    
        public static void main(String[] args) {
            int [] score = { 20, 30, 40, 50, 80 };
            for (int value : score) {
                System.out.println(value);
                // 향상된 for 문
                
    各ドアとも呼ばれます.ドアごとに1つ書くわけではありません.

    リファレンス(reference)


    配列のように変数名を指定すると、値ではなくアドレスが参照されます.
    この変数を参照型(referencetype)変数と呼ぶ.
    public class Main {
    
        public static void main(String[] args) {
            int [] a ={ 1, 2, 3 };
            int [] b;
            b = a;
            b[0] = 100;
            System.out.println(a[0]);
        }
    }
    このようなコードがあれば、aの値は何ですか?

    ごみ収集


    newが確保する要素は通常の変数とは異なるため,ブロックが終了しても寿命は終了しない.
    public class Main {
    
        public static void main(String[] args) {
            boolean b = true;
            if (b == true) {
                int [] i = { 1, 2, 3 };
            }
        }
    }
    ブロック内で生成された配列の後は、読み書きは一切できず、メモリのみが消費されます.
    これはメモリのゴミになります.
    元のメモリの場合、プログラマは未使用のメモリを消去する必要があります.
    Javaは「ごみ収集」という設備で自分で整理されています.

    null


    int[]のような参照型変数に変数を代入すると、変数は何も参照されなくなります.
    int型などの基本型変数は代入できません.
    public class Main {
        public static void main(String[] args) {
            int [] a = { 1, 2, 3 };
            a = null;
            a[0] = 10;
        }
    }
    int[]a={1,2,3}.
    aの値にnullを代入した.
    これは私が何も参考にしないことを意味します.
    a[0] = 10; 範囲外.

    length


    文字列と配列の長さが少し違います.
    Stringのlengthは、韓国語、英語、空白を問わず、1文字でカウントされます.
    配列の長さに似ていますが、()を付けなければなりません.
    public class Main {
        public static void main(String[] args) {
            String s = "Java로 개발";
            System.out.println(s.length());
        }
    }
    「Javaで開発」は、スペースを含む8文字です.
    印刷したら、答えは8です.

    2 Dアレイ

    public class Main {
        public static void main(String[] args) {
            int [][] scores = new int[2][3];       
                                  // 2행 3열
            scores[0][0] = 40;
            scores[0][1] = 50;
            scores[0][2] = 60;
            scores[1][0] = 80;
            scores[1][1] = 60;
            scores[1][2] = 70;
            System.out.println(scores[1][1]);
        }
    }
    行と列を画像として簡単に表しましょう

    そのような配列に値が含まれていると考えれば分かりやすい.

    配列内の要素数を表示

    public class Main {
        public static void main(String[] args) {
           int [][] scores = { { 10, 20, 30 }, { 30, 40, 50 } };
            System.out.println(scores.length);
            System.out.println(scores[0].length);
        }
    }
    上のコードの各値はどのように出力されますか?
    最初の値は{10,20,30},{30,40,50}であるため,2が現れる.
    2番目の値が[0]に対応する値は{10,20,30}です.3つの値があるので、答えは3です.