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

Bagaimana untuk melaksanakan kelas LinkedList tersuai dalam Java

王林
Lepaskan: 2023-05-17 08:31:05
ke hadapan
1012 orang telah melayarinya

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() {
    }
}
Salin selepas log masuk

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

kaedah saiz()

@Override
    public int size() {
        return size;
    }
Salin selepas log masuk

kaedah isEmpty()

 @Override
    public boolean isEmpty() {
        return size == 0;
    }
Salin selepas log masuk

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;
    }
Salin selepas log masuk

4 terima Sisipan data pada penghujung

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

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++;
    }
Salin selepas log masuk

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!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan