91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java如何實現自定義LinkedList類

發布時間:2022-08-13 09:24:38 來源:億速云 閱讀:145 作者:iii 欄目:開發技術

這篇文章主要介紹了Java如何實現自定義LinkedList類的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Java如何實現自定義LinkedList類文章都會有所收獲,下面我們一起來看看吧。

一、LinkedList和ArrayList

--LinkedListArrayList
聯系都是List的實現類,都在java.util包下
實現原理通過鏈表操作數據通過數組操作數據
什么時候使用改查增刪

二、自定義LinkedList類(單向鏈表)

1、實現思路

LinkedList類跟ArrayList類不同,它通過指針以及結點的操作對鏈表進行增刪改查

自定義LinkedList類的步驟

1、創建結點類,里面屬性為Node類型的node結點、Object類型的數據

2、創建結點類的有參和無參構造方法

3、創建自己的LinkedList類實現List接口

4、在LinkedList類中新建一個結點對象以及聲明一個size用于表示集合中的元素

5、實現size()、get() 、isEmpty()的方法(與ArrayList類似)

6、編寫一個形參的add()方法

7、編寫兩個形參的add()方法

8、創建測試類對代碼進行測試

2、Node結點類

里面有兩個屬性:結點和數據

結點的類型為Node

數據的類型為Object(因為不能夠確定傳入的數據具體是什么類型)

Java如何實現自定義LinkedList類

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()方法

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

isEmpty()方法

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

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、add(Object o)

將接受到的數據插入最后即可

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

5、add(int index,Object element)

Java如何實現自定義LinkedList類

 @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類

循環從1開始的原因:因為在LinkedList類中最開始就創建了一個對象,如果從0開始就會看到打印結果為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));
        }

    }
}

關于“Java如何實現自定義LinkedList類”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Java如何實現自定義LinkedList類”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宣武区| 方城县| 甘南县| 奇台县| 嘉定区| 伊宁县| 平原县| 襄城县| 资兴市| 远安县| 合水县| 金塔县| 右玉县| 武宁县| 清徐县| 巴林左旗| 涪陵区| 延边| 隆德县| 安宁市| 长宁县| 宁安市| 湖南省| 河池市| 彭泽县| 宁德市| 新干县| 泽库县| 洪湖市| 青州市| 清徐县| 云梦县| 凤凰县| 合阳县| 宣化县| 德州市| 连城县| 云梦县| 广平县| 敦煌市| 瑞安市|