Java集合框架问题:ArrayList与LinkedList的区别示例

原创 分手后的思念是犯贱 2024-09-18 12:24 133阅读 0赞

在Java集合框架中,ArrayList和LinkedList都是常用的动态数组。它们的主要区别在于插入元素的位置以及访问元素的方式。

  1. 插入位置:
  • ArrayList:插入操作通常效率较低,因为需要移动大量的元素来为新元素腾出空间。例如:
    ```java
    // 旧数据
    String[] oldArray = {“A”, “B”, “C”};

// 新元素插入位置(索引)
int indexToInsert = 1;

// 插入新元素
oldArray.splice(indexToInsert, 1, “D”));

// 输出新数组
System.out.println(Arrays.toString(oldArray)); // 输出:[A, D, B, C]

  1. - LinkedList:插入操作效率较高,因为只需改变链表的头指针。例如:
  2. ```java
  3. // 创建LinkedList并添加元素
  4. List<String> linkedList = new LinkedList<>();
  5. linkedList.add("E");
  6. linkedList.add("F");
  7. // 插入新元素(索引)
  8. int indexToInsert = 1;
  9. // 插入新元素
  10. linkedList.add(indexToInsert, "G"));
  11. // 输出LinkedList
  12. System.out.println(linkedList); // 输出:[E, F, G]
  1. 访问方式:
  • ArrayList:访问元素的速度相对较快,因为可以直接通过索引访问。例如:
    ```java
    // 获取ArrayList中某个元素
    String elementAtIndex = oldArray[indexToInsert - 1]]; // 注意这里的索引需要减去1

System.out.println(elementAtIndex); // 输出:G

  1. - LinkedList:访问元素的效率较低,因为需要遍历链表。例如:
  2. ```java
  3. // 获取LinkedList中某个元素(从头开始查找)
  4. String elementAtIndex = linkedList.get(indexToInsert - 1)); // 注意这里的索引需要减去1
  5. System.out.println(elementAtIndex); // 输出:G

总结来说,ArrayList适合于插入操作较少或者对元素访问速度要求不高的场景;LinkedList则更适合于频繁的插入和删除操作,但访问元素时效率较低。

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

发表评论

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

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

相关阅读