Java 手寫LinkedList集合

2021-09-11 22:13:44 字數 2709 閱讀 8158

}原尾節點object4的next節點為新新增的object new

object new的prev節點為object4,object new的next節點為null

原object2的next節點為新新增的object new

object new的prev節點為object2,object new的next節點為object3

原object3的prev節點為object new

原object2的next節點為object4

原object4的prev節點為object2

/** * 手寫linklist 鍊錶集合

* @author administrator

* * @param */

public class xwflinkedlistimplements xwflist

// 鍊錶節點

private static class node

} public int size()

public void add(e e) else

// 給最後乙個node賦值

last = node;

size++;

} public void clear()

for (nodenode = first; node != null;)

first = last = null;

size = 0;

} // 獲取元素

// jdk1.7之前 都是 從頭到尾

public e get(int index)

// 獲取腳標節點

public nodenode(int index)

} else

} return node;

} // 在指定腳標新增節點

public void add(int index, e element) else

size++;

} // 刪除節點

public e remove(int index) else

if (next != null) else

// 當前節點設定為空

node.item = null;

size--;

return element;

} private void checkelementindex(int index)

private boolean iselementindex(int index)

private string outofboundsmsg(int index)

public boolean remove(object o)

}add(e e),實現原理基本一致,在鍊錶的最後進行新增

void linklast(e e)
add(index,e e)方法

看方法名是在before之前,繼續往下看原始碼,確實是插入在該位置元素的前面

Java資料結構之手寫LinkedList

linkedlist的實現本質為乙個雙向鍊錶,下面是簡單的實現增刪改查 public class linkedlist public void add e e public void change int index,e e nodetarget node index target.item e 刪...

java原始碼分析08 LinkedList

喜歡乙個人,就會喜歡她的一切嗎?今天,我們來看下linkedlist的結構。linkedlist內部其實是雙向鍊錶實現的,而且擁有輪詢以及出棧的功能。增刪改查 public boolean add e e void linklast e e 每次增加新的元素,都是在鍊錶末尾加上,注意當前時刻的末尾節...

Java資料結構詳解(四) LinkedList

返回鍊錶的邏輯大小 transient int size 0 頭部節點 transient nodefirst 尾部節點 transient nodelast 一,無參構造器 public linkedlist 二,有引數的構造器 public linkedlist collection c add...