Heim > Java > javaLernprogramm > So implementieren Sie eine benutzerdefinierte LinkedList-Klasse in Java

So implementieren Sie eine benutzerdefinierte LinkedList-Klasse in Java

王林
Freigeben: 2023-05-17 08:31:05
nach vorne
992 Leute haben es durchsucht

1. LinkedList und ArrayList

--LinkedListArrayList# 🎜🎜#KontaktImplementierungsprinzipWann zu verwenden it# 🎜🎜#ChanchaHinzufügen und löschen2. Angepasste LinkedList-Klasse (einseitig). verknüpfte Liste)# 🎜🎜#1. Implementierungsideen
sind alle Implementierungsklassen von List, alle unter dem java.util-Paket
Betriebsdaten über verknüpfte Liste Betriebsdaten über Array

Die LinkedList-Klasse unterscheidet sich von der ArrayList-Klasse durch die Operation von Zeigern und Knoten

Anpassungsschritte für die LinkedList-Klasse

1. Erstellen Sie eine Knotenklasse mit den Attributen Knotentyp Knoten und Objekttyp Daten

2. Erstellen eine Knotenklasse mit Parametern und einem Konstruktor ohne Parameter

3 Erstellen Sie Ihre eigene LinkedList-Klasse, um die List-Schnittstelle zu implementieren

4. Erstellen Sie ein neues Knotenobjekt in der LinkedList-Klasse und Deklarieren Sie eine Größe zur Darstellung der Elemente in

5. Implementieren Sie die Methoden size(), get(), isEmpty() (ähnlich wie ArrayList)

6 Formale Parameter add()-Methode

7 Schreiben Sie die add()-Methode mit zwei formalen Parametern

8. Erstellen Sie eine Testklasse, um den Code

#🎜 zu testen 🎜#2. Knotenstruktur Die Punktklasse

hat zwei Attribute: Knoten und Daten

Der Knotentyp ist Knoten

Der Datentyp ist Objekt (da es nicht in der Lage ist, den spezifischen Typ der eingehenden Daten zu bestimmen)

package MyLinkedList;

public class Node {
    // 定义数据
    Object data;
    // 定义下一结点
    Node next;

    public Node(Object data, Node next) {
        this.data = data;
        this.next = next;
    }

    public Node() {
    }
}
Nach dem Login kopieren

3, size(), isEmpty(), get(int index)#🎜🎜 #

size()method

@Override
    public int size() {
        return size;
    }
Nach dem Login kopieren
So implementieren Sie eine benutzerdefinierte LinkedList-Klasse in JavaisEmpty()method

 @Override
    public boolean isEmpty() {
        return size == 0;
    }
Nach dem Login kopieren

get(int index)method

 @Override
    public Object get(int index) {
        Node p = node;
        for (int i = 0; i < index; i++) {
            p = p.next;
        }

        return p.data;
    }
Nach dem Login kopieren
#🎜🎜 #4, add( Object o)

Fügen Sie die empfangenen Daten am Ende ein

@Override
    public boolean add(Object o) {
        add(size, o);
        return true;
    }
Nach dem Login kopieren

5, add(int index,Object element)

#🎜🎜 #

 @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++;
    }
Nach dem Login kopieren

6, Testklasse

Der Grund, warum die Schleife bei 1 beginnt: Da am Anfang in der LinkedList-Klasse ein Objekt erstellt wird, werden Sie sehen Wenn Sie bei 0 beginnen, ist das gedruckte Ergebnis null

package 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));
        }

    }
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine benutzerdefinierte LinkedList-Klasse in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage