}原尾節點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...