リストとは?-1編


0フィーチャー?


実はリストの特徴は前にも言いました.
ここではListメソッドを熟知しているArrayと比較する.
  • Array
    私たちがよく知っている基本的なデータを処理しているので、あなたはとても気持ちがいいと思います.
    しかし、実際には、挿入削除方法が提供されておらず、管理が困難である.
    (アレイサイズ固定)
  • List
    見知らぬクラスのデータを処理するのに適していません.
    挿入/参照/削除方法を指定します.
    また,配列要素がオブジェクトであるため,管理も容易である.
  • これを図と比較すると以下のようになります.

    1. ArrayList


    リストインタフェースの代表として,よく用いられる資料構造である.
    何も説明することはありません.方法を理解してみましょう.
  • add()メソッド
  • List<User> userList = new ArrayList<>();
    
    userList.add("가");
    userList.add("나");
    
    // 인덱스를 지정하여 삽입 가능
    userList.add(1, "다");
    add()メソッドとして挿入するか、特定のインデックスに挿入することもできます.
  • remove()メソッド
  • List<User> userList = new ArrayList<>();
    
    // 첫번째 요소("다")를 삭제
    userList.remove(1);
    
    // 그 다음 첫번째 요소("나")를 삭제
    userList.remove(1);
    インデックスを削除すると、次の要素は空の位置に入力されます.
    可変なのでメモリ管理は非常に有効です.
    //@@get()メソッドは前述のように@@/

    欠点-add()


    add()メソッドは非常に便利に見えますが、条件がなく、直接挿入することはできません.
    このように可変に見えるのは、「並べ替え」のためです.
    寸法を超えて挿入すると、リストには次の手順があります.
  • サイズを超えるリストを再作成します.
  • 新しく生成された配列
  • に値をコピーします.
  • の既存の配列は廃棄されます.
  • このような複雑な過程はadd()が一度に完成したのです!
    従って、サイズを超えたadd()は、多くの時間とコストを要する.

    2. Vector


    VectorとArrayListは同期の有無に分けられる.
    では、Vectorは同期ですが、同期とは何でしょうか.
  • 同期とは?
    データのACIDは、データの同時アクセスを処理するC、すなわちコンシステンシに相当する.
  • すなわち、これはマルチスレッド環境に最適化されたリストである.
    残りの部分はArrayListと同じなので省略します.
    続き第二篇…-->>