为什么遍历LinkedList和Arraylist的列表需要相同的时间?

时间:2018-02-01 04:56:36

标签: java arraylist linked-list

为什么此代码的Arraylist和LinkedList的大O将与O(MN)相同?

PS:我不完全理解这段代码。任何解释都将不胜感激。

public static int Count( List<Integer> lst1, List<Integer> lst2) {
    Iterator<Integer> itr1 = lst1.iterator();

    int count=0;
    while ( itr1.hasNext() ) {
        Integer x = itr1.next();
        Iterator<Integer> itr2 = lst2.iterator();
        while (itr2.hasNext())
            if (x.equals(itr2.next()))
                count++;
    }
    return count;
}

1 个答案:

答案 0 :(得分:1)

遍历这两个列表会花费相同的时间复杂度。

但是与ArrayList相比,LinkedList中的删除速度更快。 因为ArrayList基于索引工作而LinkedList适用于地址跟踪。