Java中ArrayList和LinkedList的性能对比实例

原创 「爱情、让人受尽委屈。」 2024-10-11 22:48 101阅读 0赞

在Java中,ArrayList和LinkedList是两种常见的动态数组。它们各自有不同的性能特点,下面通过一个实例来对比它们的性能。

假设我们有一个需要频繁插入和删除元素的场景,这里我们将使用Arrays.fill()方法填充10,000个元素,并统计插入、删除操作的次数。

  1. ArrayList:
    ```java
    import java.util.ArrayList;

ArrayList list = new ArrayList<>(10_000);
// … 使用fill()填充元素

// 插入操作示例:
list.add(5); // 添加一个值为5的元素

// 删除操作示例:
int indexToRemove = 2; // 要删除的索引
list.remove(indexToRemove); // 删除指定索引的元素

// 计算插入、删除次数:
List insertionOperations = new ArrayList<>();
List deletionOperations = new ArrayList<>();

for (Integer value : list) {
if (insertionOperations.contains(value)) {
// 插入操作已存在,忽略
continue;
}
insertionOperations.add(value);
}

// … 同理计算删除次数

int totalInsertions = insertionOperations.size();
int totalDeletions = deletionOperations.size();

System.out.println(“Total Insertions: “ + totalInsertions);
System.out.println(“Total Deletions: “ + totalDeletions);

  1. 2. LinkedList:
  2. ```java
  3. import java.util.LinkedList;
  4. LinkedList<Integer> linkedList = new LinkedList<>(10_000);
  5. // ... 使用fill()填充元素
  6. // 插入操作示例:
  7. linkedList.add(5); // 添加一个值为5的元素
  8. // 删除操作示例:
  9. int indexToRemove = 2; // 要删除的索引
  10. linkedList.remove(indexToRemove); // 删除指定索引的元素
  11. // 计算插入、删除次数:
  12. List<Integer> insertionOperations = new ArrayList<>();
  13. List<Integer> deletionOperations = new ArrayList<>();
  14. for (Integer value : linkedList) {
  15. if (insertionOperations.contains(value)) {
  16. // 插入操作已存在,忽略
  17. continue;
  18. }
  19. insertionOperations.add(value);
  20. }
  21. // ... 同理计算删除次数
  22. int totalInsertions = insertionOperations.size();
  23. int totalDeletions = deletionOperations.size();
  24. System.out.println("Total Insertions: " + totalInsertions);
  25. System.out.println("Total Deletions: " + totalDeletions);

通过这个实例,你可以看到在频繁插入和删除的情况下,LinkedList的性能通常优于ArrayList。因为LinkedList在内存中的布局更紧凑,可以在常数时间内完成插入和删除操作。而ArrayList则需要移动元素以进行插入或删除,时间复杂度较高。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,101人围观)

还没有评论,来说两句吧...

相关阅读