Java ArrayList 与 LinkedList 的灵活选择

打印 上一主题 下一主题

主题 978|帖子 978|积分 2934

Java ArrayList

Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。
创建 ArrayList
  1. import java.util.ArrayList;
  2. ArrayList<String> cars = new ArrayList<String>(); // 创建一个 ArrayList 对象
复制代码
添加元素
  1. cars.add("Volvo");
  2. cars.add("BMW");
  3. cars.add("Ford");
  4. cars.add("Mazda");
复制代码
访问元素
  1. cars.get(0); // 获取第一个元素
复制代码
修改元素
  1. cars.set(0, "Opel"); // 修改第一个元素
复制代码
删除元素
  1. cars.remove(0); // 删除第一个元素
  2. cars.clear(); // 删除所有元素
复制代码
ArrayList 大小
  1. cars.size(); // 获取 ArrayList 大小
复制代码
循环遍历 ArrayList

for 循环:
  1. for (int i = 0; i < cars.size(); i++) {
  2.   System.out.println(cars.get(i));
  3. }
复制代码
for-each 循环:
  1. for (String car : cars) {
  2.   System.out.println(car);
  3. }
复制代码
利用其他类型
  1. ArrayList<Integer> myNumbers = new ArrayList<Integer>();
  2. myNumbers.add(10);
  3. myNumbers.add(15);
  4. myNumbers.add(20);
  5. myNumbers.add(25);
复制代码
对 ArrayList 进行排序
  1. import java.util.Collections;
  2. Collections.sort(cars); // 对字符串的 ArrayList 进行排序
  3. Collections.sort(myNumbers); // 对整数的 ArrayList 进行排序
复制代码
ArrayList 是 Java 中常用的数据布局,它可以存储各种类型的数据,并且可以根据需要调整大小。
ArrayList 的上风:

  • 可变大小
  • 可以存储各种类型的数据
  • 提供多种方法来访问、修改和删除元素
  • 可以利用 Collections 类进行排序
ArrayList 的劣势:

  • 速度比数组慢
  • 大概会浪费内存空间
建议:

  • 当需要存储可变大小的数据集合时,利用 ArrayList。
  • 当需要快速访问数据时,利用数组。
  • 当需要存储大量数据时,思量利用其他数据布局,例如 HashMap。
Java LinkedList

LinkedList 类与 ArrayList 类相似,但它们之间也有一些重要的区别。
创建 LinkedList
  1. // 导入 LinkedList 类
  2. import java.util.LinkedList;
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         LinkedList<String> cars = new LinkedList<>();
  6.         cars.add("Volvo");
  7.         cars.add("BMW");
  8.         cars.add("Ford");
  9.         cars.add("Mazda");
  10.         System.out.println(cars);
  11.     }
  12. }
复制代码
ArrayList 与 LinkedList

雷同点:

  • 它们都实现了 List 接口,因此它们具有雷同的方法。
  • 它们都可用于存储各种类型的数据。
  • 它们都允许您添加、删除和修改元素。
差别点:

  • ArrayList 利用数组存储数据,而 LinkedList 利用链表存储数据。
  • ArrayList 通常更快,因为它可以直接访问元素。
  • LinkedList 更灵活,因为它可以更轻松地插入和删除元素。
何时利用:

  • 如果您需要快速访问列表中的随机元素,请利用 ArrayList。
  • 如果您需要常常插入和删除元素,请利用 LinkedList。
LinkedList 方法

LinkedList 提供了一些 ArrayList 没有的方法,这些方法可以更有效地执行某些操作:
方法描述addFirst()将元素添加到列表的开头。addLast()在列表的末端添加元素。removeFirst()从列表的开头删除元素。removeLast()从列表的末端删除元素。getFirst()获取列表开头的元素。getLast()获取列表末端的元素。示例
  1. // 添加元素到列表的开头
  2. cars.addFirst("Toyota");
  3. // 添加元素到列表的末尾
  4. cars.addLast("Mercedes");
  5. // 删除列表开头的元素
  6. cars.removeFirst();
  7. // 删除列表末尾的元素
  8. cars.removeLast();
  9. // 获取列表开头的元素
  10. String firstCar = cars.getFirst();
  11. // 获取列表末尾的元素
  12. String lastCar = cars.getLast();
复制代码
LinkedList 是一种灵活的数据布局,可以有效地执行某些操作。如果您需要常常插入和删除元素,LinkedList 是一个不错的选择。
末了

为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜刮:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表