【问题标题】:How to compare a LinkedList value with its parent object?如何将 LinkedList 值与其父对象进行比较?
【发布时间】:2013-07-18 07:23:31
【问题描述】:

如何通过比较获得我添加到链接列表的对象的索引?以下代码将详细说明我的问题。 (我展示了一个虚拟的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
    }

【问题讨论】:

  • 你为什么需要那个?您已经在循环中拥有i 的值?
  • @Rohit 是的,你是对的,但是如果它是一个 foreach 类型的循环呢?
  • 这个在列表和检查索引中具有相同内容的特殊要求是实时有效的要求吗?
  • @Anas。检查LinkedList API。你需要LinkedList#lastIndexOf
  • @Rohit 不,我不需要那个。想象一个包含许多随机位置的相同值的列表。我想知道我添加的对象的确切位置,而不是第一次或最后一次出现类似值。

标签: java


【解决方案1】:
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"));

}

}

希望对你有帮助.....

【讨论】:

    【解决方案2】:

    好的,如果你需要参考比较,你必须使用类似的东西:(未测试)

    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&lt;T&gt; 实现了 Iterable&lt;T&gt;,因此您可以免费获得与其他一些类型的兼容性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-17
      • 2019-08-05
      • 1970-01-01
      相关资源
      最近更新 更多