Maison >Java >javaDidacticiel >Comment implémenter une classe LinkedList personnalisée en Java
-- | LinkedList | ArrayList |
Contact | sont toutes deux des classes d'implémentation de List, toutes deux sous le package java.util | |
principe d'implémentation | via lié list Manipuler les données | Manipuler les données via des tableaux |
Quand utiliser | Modifier et vérifier | Ajouter et supprimer |
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(int index)size() méthode
@Override public int size() { return size; }isEmpty () méthode
@Override public boolean isEmpty() { return size == 0; }get(int index) méthode
@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)insérer les données reçues à la fin
@Override public boolean add(Object o) { add(size, o); return true; }5. 6. test classloop La raison pour laquelle on commence à partir de 1 : Parce qu'un objet est créé au début dans la classe LinkedList, si vous partez de 0, vous verrez que le résultat imprimé est nul
@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++; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!