[JAVA]LinkedListの使い方


LinkedListバー

LinkedListはリストを継承するクラスであり,ポインタ前後の要素で接続された資料構造である.LinkedListは、前後ノードに接続されたデータ노드(node)を含む.LinkedListは配列やArrayListとは異なり、インデックスに基づいてアクセスすることはできず、接続されたポインタでのみ要素にアクセスできます.

LinkedListの使い方


宣言

LinkedList<Integer> llist = new LinkedList<Integer>();
LinkedList<Integer> llist = new LinkedList<>();
ジェネレータ部分のgenericタイプは省略できます.

方法


要素の追加

LinkedList<Integer> llist = new LinkedList<>();

llist.add(100); //맨 뒤에 값 추가
llist.add(300); //맨 뒤에 값 추가
llist.add(1,200); //1번 인덱스에 200이라는 값 추가
llist.addFirst(0); //맨앞에 0이라는 값 추가
llist.addLast(400); //맨 뒤에 400이라는 값 추가

上の図に示すように、LinkedListの間に要素を追加すると既存のポインタ接続が切断され、BノードのポインタがEノード(新しいノード)に接続され、EノードのポインタがCノードに接続されます.

要素の削除

LinkedList<Integer> llist = new LinkedList<>();

llist.remove(2);  //2번 인덱스 값 삭제
llist.removeFirst(); //맨 앞 요소 삭제
llist.removeLast(); //맨 뒤 요소 삭제
llist.clear(); //모든 값 삭제

要素を削除するのも、既存のポインタに接続されている接続を解除し、新しいノードに接続するだけです.

要素の検索

LinkedList<Integer> llist = new LinkedList<>();

llist.get(3); //3번 인덱스의 값 반환
llist.contains(200); //200이라는 값의 존재여부를 boolean으로 반환
llist.indexOf(100); //100이라는 값의 인덱스를 반환, 없다면 -1
LinkedListで要素を検索するには、最初のノードから開始し、ポインタでノードを検索する必要があります.したがって,最悪の場合,時間的複雑度はO(n)と同様に高い.

LinkedListサイズ

LinkedList<Integer> llist = new LinkedList<>();

int s = llist.size();

整理する


LinkedListは前後要素をポインタで接続するデータ構造である
LinkedListでは、エレメントをすばやく挿入および削除できます.포인터要素を検索するインデックスがないため、要素を検索するときに順番に検索します.そのため、検索面では速度が遅い.O(1)