-- | LinkedList | ArrayList |
#Contact | これらはすべて List の実装クラスであり、すべて java.util パッケージの下にあります | |
実装原理 | リンクされたリストによる操作データ | 配列によるデータの操作 |
いつ使用するか | 変更と確認 | 追加と削除 |
#8. コードをテストするテスト クラスを作成します
#2。ノード ノード クラス属性は 2 つあります: Node と dataノードのタイプは Nodeですデータのタイプは Object です (受信データの特定のタイプを決定します)package MyLinkedList; public class Node { // 定义数据 Object data; // 定义下一结点 Node next; public Node(Object data, Node next) { this.data = data; this.next = next; } public Node() { } }
3.size()、isEmpty()、get(intindex)
size() メソッド@Override public int size() { return size; }
@Override public boolean isEmpty() { return size == 0; }get(intindex)メソッド
@Override public Object get(int index) { Node p = node; for (int i = 0; i < index; i++) { p = p.next; } return p.data; }4,add(Object o)受信したデータを次の場所に挿入します。 end
@Override public boolean add(Object o) { add(size, o); return true; }
@Override public void add(int index, Object element) { // 找到需要插入的位置的结点 Node p = node; for (int i = 0; i < index; i++) { p = p.next; } // 创建新结点 Node node1 = new Node(); // 将数据存入集合中 node1.data = element; // 让node1的指针指向下一结点 node1.next = p.next; // 确定node1的直接前驱结点 p.next = node1; // 更新size size++; }
6, test class
ループが開始される理由1 から: LinkedList クラスの先頭にオブジェクトが作成されるため、0 から開始すると、印刷結果が nullpackage MyLinkedList; public class test { public static void main(String[] args) { LinkedList linkedList = new LinkedList(); linkedList.add("111"); linkedList.add("222"); linkedList.add("333"); linkedList.add("444"); for (int i = 1; i < linkedList.size(); i++) { System.out.println(linkedList.get(i)); } System.out.println("=================="); linkedList.add(2,999); for (int i = 1; i < linkedList.size(); i++) { System.out.println(linkedList.get(i)); } } }であることがわかります。
以上がJava でカスタム LinkedList クラスを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。