当需要访问列表中的任何元素时,LinkedList需要遍历整个列表才能找到元素。因此,向LinkedList添加和访问单个元素的时间复杂度为O(n)。相反,ArrayList具有O(1)的访问时间复杂度,因为它可以直接访问元素,而不必遍历整个列表。
以下是使用Java代码创建和添加10,000,000个元素的ArrayList和LinkedList,然后比较它们的性能差异的示例:
import java.util.ArrayList; import java.util.LinkedList;
public class Main {
public static void main(String[] args) {
// create an ArrayList
ArrayList
long startTime = System.nanoTime(); // get the starting time
// add 10,000,000 elements to the ArrayList
for(int i=0; i<10000000; i++) {
arrayList.add(i);
}
long endTime = System.nanoTime(); // get the ending time
// calculate the total time taken to add elements to the ArrayList
long duration = (endTime - startTime);
System.out.println("ArrayList Time taken: " + duration + " nanoseconds");
// create a LinkedList
LinkedList linkedList = new LinkedList();
startTime = System.nanoTime(); // get the starting time
// add 10,000,000 elements to the LinkedList
for(int i=0; i<10000000; i++) {
linkedList.add(i);
}
endTime = System.nanoTime(); // get the ending time
// calculate the total time taken to add elements to the LinkedList
duration = (endTime - startTime);
System.out.println("LinkedList Time taken: " + duration + " nanoseconds");
} }
在上面的示例中,我们使用ArrayList和LinkedList添加10,000,000个元素,并比较它们的性能。运行该代码将输出两个持续时间,表示添加元素所需的纳秒数。在大多数