Title:Java反转列表的5种方式之常用的2种Create:2023-05-24 ◊ :515

:2023-06-15 18:39
: TabKey9  :0  :0  


在 Java 中,反转列表的顺序有多种实现方案,以下是一些常见的方法:

  1. 使用 Collections.reverse() 方法:使用 Collections 类的 reverse() 方法可以直接反转 List 的顺序。这是最简单和常见的方法,直接修改原始列表。
  2. 使用 ListIterator 迭代器:使用 ListIterator 可以从列表的末尾开始,逐个获取元素并构建新的反转列表。这种方法也不会修改原始列表。
  3. 使用递归算法:可以通过递归的方式来反转列表的顺序。递归地将列表分为头部和尾部两部分,然后交换它们的位置。这种方法会创建一个新的反转列表。
  4. 使用循环和临时变量:使用循环遍历列表,并使用一个临时变量进行元素交换,从而实现列表的反转。这种方法会修改原始列表。
  5. 使用 Collections.reverseOrder()Stream:将列表转换为 Stream,使用 sorted() 方法并传入 Collections.reverseOrder(),然后将结果转换回列表。这种方法也会创建一个新的反转列表。

这些是一些常见的反转列表顺序的方法,选择使用哪种方法取决于你的具体需求和偏好。

​ —— 来自ChatGPT

下面列举常用的2种!

其一:直接修改原始列表

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ReverseListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("Apple");
        list.add("Banana");
        list.add("Orange");

        System.out.println("原始列表:" + list);

        // 反转列表顺序
        Collections.reverse(list);

        System.out.println("反转后的列表:" + list);
    }
}

这个示例创建了一个 List 对象,并添加了几个元素。然后,使用 Collections.reverse() 方法来反转列表的顺序。最后,输出反转后的列表。

输出结果将会是:

原始列表:[Apple, Banana, Orange]
反转后的列表:[Orange, Banana, Apple]

注意:Collections.reverse() 方法会直接修改原始列表,而不是创建一个新的反转后的列表。如果你不想修改原始列表,可以先创建一个副本,然后对副本进行反转操作。

其二:会创建一个新的反转列表

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class ReverseListExample {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");

        System.out.println("原始列表:" + list);

        List<String> reversedList = list.stream()
                .sorted(Collections.reverseOrder())
                .collect(Collectors.toList());

        System.out.println("反转后的列表:" + reversedList);
    }
}

在上述示例中,我们使用 Stream 来对列表进行操作。我们使用 sorted() 方法,并传入 Collections.reverseOrder() 作为比较器,以便按照逆序排序列表。最后,我们使用 collect() 方法将结果转换回一个新的列表 reversedList

输出结果将会是:

原始列表:[a, b, c]
反转后的列表:[c, b, a]

注意:这种方法会创建一个新的反转列表,而不修改原始列表。