2014-03-30 55 views
5

我遍歷LinkedList中的對象列表,搜索滿足某些條件的第一個對象。一旦找到,我想將它移動到列表的前面,以減少在列表中搜索常用搜索對象的平均時間。什麼,我試圖做Java - 將對象移動到LinkedList前

僞代碼示例:

for(Object thing:list){ 
    if(ThisIsTheObjectWeAreLookingFor(thing)){ 
     list.RemoveCurrentLinkedListNode(); 
     list.addFirst(thing); 
     return thing; 
    } 
} 

我知道我可以使用刪除(對象)或刪除(指數)的方法,但是這將是慢。基本上這取決於列表中元素的數量。 (因爲這些方法必須第二次遍歷列表)。

+0

聲音像http://stackoverflow.com/questions/5321463/how-to-move-the-selected-item-to-移到列表頂部 –

+0

@RakeshKR不,這是關於任何「列表」,因此不能利用鏈表詳細信息。 – delnan

回答

8
Iterator it = list.iterator(); 
while (it.hasNext()) { 
    Object thing = it.next(); 
    if (ThisIsTheObjectWeAreLookingFor(thing)) { 
     it.remove(); 
     list.addFirst(thing); 
     return thing; 
    } 
} 
+0

正是我在找的東西。謝謝! – Pineapple

+0

謝謝!像魅力一樣工作 – raevilman