Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan kelas LinkedList tersuai dalam Java

Bagaimana untuk melaksanakan kelas LinkedList tersuai dalam Java

王林
王林ke hadapan
2023-05-17 08:31:05977semak imbas

1. LinkedList dan ArrayList

-- LinkedList ArrayList
联系 都是List的实现类,都在java.util包下
实现原理 通过链表操作数据 通过数组操作数据
什么时候使用 改查 增删

2. Kelas LinkedList Tersuai (senarai terpaut sehala)

1. Idea Pelaksanaan

Kelas LinkedList adalah berbeza daripada kelas ArrayList , ia menambah, memadam, mengubah suai dan menyemak senarai terpaut melalui operasi penuding dan nod

Langkah-langkah untuk menyesuaikan kelas LinkedList

1 Cipta kelas nod dengan atribut jenis Nod nod. Data jenis objek

2 Cipta pembina berparameter dan tanpa parameter bagi kelas nod

3 Cipta kelas LinkedList anda sendiri untuk melaksanakan antara muka Senarai

4 LinkedList Cipta objek nod baharu dalam kelas dan isytiharkan saiz untuk mewakili elemen dalam koleksi

5 Laksanakan kaedah size(), get() dan isEmpty() (serupa dengan ArrayList)

6. Tulis kaedah tambah() dengan satu parameter formal

7 Tulis kaedah tambah() dengan dua parameter formal

8

2 Terdapat dua atribut dalam kelas nod Nod

: nod dan data

Jenis nod ialah Nod

Jenis data ialah Objek (kerana ia tidak dapat Menentukan jenis khusus data masuk)

Bagaimana untuk melaksanakan kelas LinkedList tersuai dalam Java

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)

kaedah saiz()

@Override
    public int size() {
        return size;
    }

kaedah isEmpty()

 @Override
    public boolean isEmpty() {
        return size == 0;
    }

kaedah get(int index)

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

        return p.data;
    }

4 terima Sisipan data pada penghujung

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

5 gelung daripada 1 Sebab untuk bermula: Kerana objek dicipta pada permulaan dalam kelas LinkedList, jika anda bermula dari 0, anda akan melihat bahawa hasil cetakan adalah batal

 @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++;
    }

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan kelas LinkedList tersuai dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam