何时在Java中使用ArrayList和LinkedList
ArrayList为搜索操作提供了恒定的时间,因此,如果搜索比添加和删除操作更为频繁,则最好使用ArrayList。 LinkedList为添加和删除操作提供恒定的时间。因此最好使用LinkedList进行操作。
ArrayList通过get和set方法访问元素的时间复杂度为O(1)。
LinkedList访问元素的时间复杂度为O(n/2)。
LinkedLinked类也实现了Deque接口,因此您可以在LinkedList中获得双头队列功能。 ArrayList类不实现Deque接口。
在排序上,ArrayList更好地访问数据,而LinkedList更好地操作数据。这两个类都实现了List接口。
ArrayList示例
import java.util.*;
public class ListExample {
public static void main(String[] args) {
List<String>list=new ArrayList<>();
list.add("ankit");
list.add("peter");
list.add("mayank");
System.out.println("Traversing ArrayList...");
for(String s:list){
System.out.println(s);
}
}
}
输出:
Traversing ArrayList...ankitpetermayank
LinkedList示例
import java.util.*;
public class ListExample2 {
public static void main(String[] args) {
List<String>list=new LinkedList<>();
list.add("ankit");
list.add("peter");
list.add("mayank");
System.out.println("After adding: "+list);
list.remove("peter");
System.out.println("After removing: "+list);
list.set(1,"vivek");
System.out.println("After changing: "+list);
}
}
输出:
After adding: [ankit, peter, mayank]After removing: [ankit, mayank]After changing: [ankit, vivek]