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
    }
4

2 回答 2

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>了 ,因此您可以免费获得与其他一些类型的兼容性。

于 2013-07-19T05:46:06.547 回答
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"));

}

}

我希望它会帮助你......

于 2013-07-19T06:08:52.123 回答