Java集合框架中ArrayList与LinkedList区别示例
Java集合框架中的ArrayList
和LinkedList
都是实现了List
接口的类,但它们在内部数据结构和性能特性上有所不同。以下是它们的主要区别和示例:
1.内部数据结构- ArrayList:基于动态数组实现,支持快速随机访问。
- LinkedList:基于双向链表实现,每个元素都包含对前一个和后一个元素的引用。
2.性能特点- ArrayList:
-随机访问速度快(O(1))。
-增加或删除元素时可能需要数组复制,速度较慢(O(n))。
- LinkedList:
-随机访问速度慢(O(n))。 - 在列表的任何位置添加或删除元素都很快(O(1)),因为只需要改变节点的引用。
3. 示例代码#### ArrayList 示例```javaimport java.util.ArrayList;
public class ArrayListExample {
public static void main(String[] args) {
ArrayList
list.add(“Java”);
list.add(“Python”);
list.add(“C++”);
//随机访问 System.out.println(“Element at index1: “ + list.get(1));
// 添加元素 list.add(0, “JavaScript”);
// 删除元素 list.remove(“C++”);
//遍历 for (String lang : list) {
System.out.println(lang);
}
}
}#### LinkedList 示例
javaimport java.util.LinkedList;
public class LinkedListExample {
public static void main(String[] args) {
LinkedList
list.add(“Java”);
list.add(“Python”);
list.add(“C++”);
//随机访问 System.out.println(“Element at index1: “ + list.get(1));
// 添加元素 list.addFirst(“JavaScript”);
// 删除元素 list.removeLast();
//遍历 for (String lang : list) {
System.out.println(lang);
}
}
}``###4.适用场景- **ArrayList**:当你需要频繁随机访问列表中的元素时,使用
ArrayList`更合适。
- LinkedList:当你需要在列表的头部或中间频繁插入或删除元素时,使用
LinkedList
更合适。
选择ArrayList
还是LinkedList
取决于你的具体需求和操作类型。
还没有评论,来说两句吧...