我有一個鏈接在一起的對象的鏈接列表,其中第一個,最後一個,前一個變量代表列表中的適當節點。這個清單工作正常。如何從雙向鏈表中提取值?
我現在試圖添加SUB值(一個子雙向鏈表)。父列表中的每個項目都將包含自己的雙向鏈表。
我在引用原始鏈接列表中的項目時遇到問題。
一旦你創建了一個鏈接值的列表,你如何訪問它們?
我有:
public class Menu<E> {
private mNode first;
private mNode last;
private mNode previous;
private mNode next;
private int size = 0;
public Menu(){
first = null;
last = null;
previous = null;
next = null;
}
public Menu(E[] elements){
for (int i = 0; i < elements.length; i++)
add(elements[i]);
}
private boolean isEmpty(){
return first == null;
}
public void add(E e){
mNode currentNode = new mNode(e);
if(isEmpty())
first = currentNode;
else if (last == null)
last = currentNode;
else{
last.next = currentNode;
currentNode.previous = last;
last = currentNode;
}
size ++;
}
的了mnode類還沒有真正被開發尚未充分,但其在這裏以供參考:
public class mNode<E> {
E element;
mNode<E> first;
mNode<E> last;
mNode<E> previous;
mNode<E> next;
int index;
public mNode(){
}
public mNode(E e){
element = e;
}
}
如此反覆,我的問題是,一旦我在鏈表中添加了一堆元素,我可以遍歷它並將它們全部打印出來,但是如何找到並提取特定菜單項?
編輯:
爲清楚起見,可以說我有
項目1 <>項目2 <>項目3 <>項目4
所有在第一個列表。我想將subitem1 <> subitem2 <> subitem3添加到父列表中的Item 2。
如何獲取第2項的mNode的引用?
在main方法,一旦你創建一個
Menu list = new Menu();
list.add(values) // adding all 4 menu items
你真的不能做一個list.get(第2項),因爲第2項不是菜單裏面的變量。
爲每個菜單項分配唯一的ID!並通過id你可以找到一個特定的菜單項。 – iMBMT