[JAVA]LinkedListの使い方
7982 ワード
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)
Reference
この問題について([JAVA]LinkedListの使い方), 我々は、より多くの情報をここで見つけました https://velog.io/@kekim20/JAVA-LinkedList-사용법テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol