5

Java ArrayList 与 LinkedList 的灵活选择

 6 months ago
source link: https://blog.51cto.com/xiaowange/9978549
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Java ArrayList

Java ArrayList 类是一个可变大小的数组,位于 java.util 包中。

创建 ArrayList

import java.util.ArrayList;

ArrayList<String> cars = new ArrayList<String>(); // 创建一个 ArrayList 对象
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("Mazda");
cars.get(0); // 获取第一个元素
cars.set(0, "Opel"); // 修改第一个元素
cars.remove(0); // 删除第一个元素
cars.clear(); // 删除所有元素

ArrayList 大小

cars.size(); // 获取 ArrayList 大小

循环遍历 ArrayList

for 循环:

for (int i = 0; i < cars.size(); i++) {
  System.out.println(cars.get(i));
}

for-each 循环:

for (String car : cars) {
  System.out.println(car);
}

使用其他类型

ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);

对 ArrayList 进行排序

import java.util.Collections;

Collections.sort(cars); // 对字符串的 ArrayList 进行排序
Collections.sort(myNumbers); // 对整数的 ArrayList 进行排序

ArrayList 是 Java 中常用的数据结构,它可以存储各种类型的数据,并且可以根据需要调整大小。

ArrayList 的优势:

  • 可以存储各种类型的数据
  • 提供多种方法来访问、修改和删除元素
  • 可以使用 Collections 类进行排序

ArrayList 的劣势:

  • 速度比数组慢
  • 可能会浪费内存空间
  • 当需要存储可变大小的数据集合时,使用 ArrayList
  • 当需要快速访问数据时,使用数组。
  • 当需要存储大量数据时,考虑使用其他数据结构,例如 HashMap

Java LinkedList

LinkedList 类与 ArrayList 类相似,但它们之间也有一些重要的区别。

创建 LinkedList

// 导入 LinkedList 类
import java.util.LinkedList;

public class Main {
    public static void main(String[] args) {
        LinkedList<String> cars = new LinkedList<>();
        cars.add("Volvo");
        cars.add("BMW");
        cars.add("Ford");
        cars.add("Mazda");
        System.out.println(cars);
    }
}

ArrayList 与 LinkedList

  • 它们都实现了 List 接口,因此它们具有相同的方法。
  • 它们都可用于存储各种类型的数据。
  • 它们都允许您添加、删除和修改元素。
  • ArrayList 使用数组存储数据,而 LinkedList 使用链表存储数据。
  • ArrayList 通常更快,因为它可以直接访问元素。
  • LinkedList 更灵活,因为它可以更轻松地插入和删除元素。

何时使用:

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

LinkedList 方法

LinkedList 提供了一些 ArrayList 没有的方法,这些方法可以更有效地执行某些操作:

方法 描述
addFirst() 将元素添加到列表的开头。
addLast() 在列表的末尾添加元素。
removeFirst() 从列表的开头删除元素。
removeLast() 从列表的末尾删除元素。
getFirst() 获取列表开头的元素。
getLast() 获取列表末尾的元素。
// 添加元素到列表的开头
cars.addFirst("Toyota");

// 添加元素到列表的末尾
cars.addLast("Mercedes");

// 删除列表开头的元素
cars.removeFirst();

// 删除列表末尾的元素
cars.removeLast();

// 获取列表开头的元素
String firstCar = cars.getFirst();

// 获取列表末尾的元素
String lastCar = cars.getLast();

LinkedList 是一种灵活的数据结构,可以有效地执行某些操作。如果您需要经常插入和删除元素,LinkedList 是一个不错的选择。

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK