2013-07-19 26 views
0

如何獲得通過比較添加到鏈接列表中的對象的索引?以下代碼將詳細說明我的問題。 (我已經表現出了虛擬LinkedList的功能只是說明問題)如何比較LinkedList值與其父對象?

LinkedList<String> list = new LinkedList<String>(); 
    for(int i = 0; i < 10; i++) { 
     String j = "HELLO"; 
     list.add(j); 
     System.out.println(list.findOccurrenceOfCurrentItemInList(j) + ""); // should display the value of i 
    } 
+1

爲什麼你需要嗎?循環中已經有'i'的值了? –

+0

@Rohit是的,你是對的,但如果它是一個foreach類型的循環呢? – Anas

+0

是這個特殊的要求,列表和檢查索引中的內容相同,是一個實時的有效要求嗎? – Jayesh

回答

2
public class Test { 

public static void main(String args[]) 
{ 
    LinkedList<String> dataList = new LinkedList<String>(); 
    for(int i=0;i < 5;i++) 
    { 
     dataList.add("test"+i); 
    } 

    System.out.println(dataList.indexOf("test3")); 

} 

} 

我希望這將有助於你.....

3

好吧,如果你需要參考比較,你必須使用類似的東西:(未測試)

static <T> int indexOfRef(Iterable<T> src, T value) { 
    int i = 0; 
    for (T it : src) { 
     if (it == value) 
      return i; 
     ++i; 
    } 
    return -1; 
} 

對於打算在相反的順序,做出從頭到尾迭代器並相應地改變計數器。

請注意,在LinkedList中,您找不到比O(n)(線性搜索)更快的元素,並且List<T>實現了Iterable<T>,因此您可以免費獲得與某些其他類型的兼容性。

+0

謝謝你的朋友;) – Anas