コレクション-1


🏹 コレクション


Javaが提供するデータ構造を担当するフレームワーク→データ構造の集合
追加、削除、並べ替えなどの機能を簡略化でき、アルゴリズムXを実装する必要がある
java.utilパッケージに含める
  • データ構造:メモリからデータを構造化処理する方法
  • 🏹 コレクションの利点


  • アレイ内の問題
    1)指定したサイズは一度に変更できません.
    2)配列に記録されている中間位置データの追加・削除が困難である.
    3)複数種類のデータを格納できません.
    🔻 コレクションの利点
       1)大きさに制限はありません.
       2)追加、削除、並べ替えなどの機能処理を簡単に解決する.
       3)複数種類のデータを格納できる.
  •     オブジェクトだけが「まま」コレクションを保存できるからです.
             基本資料型を保存する必要がある場合は、Wrapperクラスを使用してください.

    🏹 集合の主なインタフェース




    🏹 Listインタフェース


    データ構造の順序付け(アレイのアップグレード形式)
    indexで順序を保つことで、オブジェクトを繰り返し格納できます.

  • ArrayListクラスが一番多い!
    類似アレイのリスト(検索用)
    デフォルトジェネレータで生成する場合、初期容量は10に設定されます.

  • Vectorクラス
    Vectorクラスのアップグレードバージョン→ArrayListクラス
    リストオブジェクトの中で最も性能が悪い.

  • LinkedListクラス
    各要素が行で接続されているリスト(追加および削除用)
    オブジェクトを追加または削除する場合は、インデックスの前後のリンクを変更するだけです.
    頻繁に追加および削除すると、ArrayListよりもパフォーマンスが優れます.
  • 🏹 Listシリーズの主な方法


  • add(E):リストの末尾にオブジェクトを追加list.add(new Dancer("아이키", 89));

  • add(int index,E):指定したインデックス位置にオブジェクトを追加list.add(3, new Dancer("허니제이", 87));

  • get(int index):インデックスの場所に格納されているオブジェクトを返します.list.get(0);

  • isEmpty():集合が空の場合はtrueまたはfalseを返します.

  • size():リストに格納されているオブジェクトの数を返します.

  • オブジェクトセット(int index,E e):インデックスの場所に格納されているオブジェクトをeに変更し、既存のオブジェクトに戻ります.Object obj = list.set(2, new Dancer("립제이", 88));

  • オブジェクトの削除(int index):indexの場所に格納されているオブジェクトを削除し、既存のオブジェクトに戻ります.Object obj = list.remove(1);

  • indexOf(Object o):パラメータなどのオブジェクトが存在するインデックス位置を返します(-1が返されない場合)
  • 🏹 強化されたfor文(各文)


    集合または配列内のすべての要素に最初から最後まで順次アクセスできます.for (하나씩 꺼내서 담을 변수 선언 : 컬렉션 또는 배열명) { }   例)リストに格納されているすべてのデータを出力する
           for (Object obj : list) { System.out.println(obj); }

    🏹 Generic:<E>


    クラス、メソッド、およびコレクションで使用されるクラスタイプを1つのタイプに制限する機能→タイプ制限
  • ジェニーンリックの強み
  • は1つのタイプに限定されるため、インスタンス解析を行う必要はない、
  • .
  • コードは、複数のタイプ(複数のタイプ)
  • を処理することができる.

    🚩 ソースコード


    Dancerオブジェクトの名前をリストから出力
  • 第1の方法:一般的に
  • public void example1() {
    	ArrayList list = new ArrayList();
    
    	for (int i = 0; i < list.size(); i++) {
    		if (list.get(i) instanceof Dancer) {
    			// list의 i번째 요소가 Dancer 객체의 주소를 참조하고 있는 경우 (true)
    			
    			System.out.println(((Dancer)list.get(i)).getName());
    			// Object -> Dancer 다운 캐스팅
    			
    		} else
    			System.out.println(list.get(i));
    	}
    }
  • 第2の方法:改良されたfor文
  • public void example2() {
    	ArrayList<Dancer> list = new ArrayList<Dancer>();
    	// Dancer 타입으로 제한된 ArrayList 객체 생성
    	// 생성된 ArrayList에는 Dancer만 저장 가능하므로, 저장된 데이터는 모두 Dancer이다.
    
    	// 향상된 for문으로 모두의 이름만 출력
    	for (Dancer d : list) {
    		// list가 Dancer 타입으로 제한되어 있기 때문에
    		// 하나씩 순서대로 꺼내서 저장하는 변수의 타입도 Dancer이다. (instanceof 불필요)
    		
    		System.out.println(d.getName());
    		// d가 Dancer 타입이기 때문에 다운캐스팅 불필요
    	}
    }