public Object get(intindex) { //首先檢查index是否合法...此處不顯示這部分代碼 Entry e = header; //開始節(jié)點 //向前或者向后查找,具體由哪一個方向距離較 //近決定 if (index < size/2) { for (int i = 0; i <= index; i++) e = e.next; } else { for (int i = size; i > index; i--) e = e.PRevious; } return e; } 把元素插入列表很簡單:找到指定索引的節(jié)點,然后緊靠該節(jié)點之前插入一個新節(jié)點:
public void add(int index, Object element) { //首先檢查index是否合法...此處不顯示這部分代碼 Entry e = header; //starting node //向前或者向后查找,具體由哪一個方向距離較 //近決定 if (index < size/2) { for (int i = 0; i <= index; i++) e = e.next; } else { for (int i = size; i > index; i--) e = e.previous; } Entry newEntry = new Entry(element, e, e.previous); newEntry.previous.next = newEntry; newEntry.next.previous = newEntry; size++; } 線程安全的LinkedList和其他集合