当前位置:首页 > Java

java如何 实现倒置

2026-03-21 05:39:12Java

实现数组倒置的方法

在Java中,可以通过多种方式实现数组倒置。以下是几种常见的方法:

方法一:使用临时数组 创建一个与原数组大小相同的新数组,将原数组的元素从后往前复制到新数组中。

public static int[] reverseArray(int[] arr) {
    int[] reversed = new int[arr.length];
    for (int i = 0; i < arr.length; i++) {
        reversed[i] = arr[arr.length - 1 - i];
    }
    return reversed;
}

方法二:原地倒置 在原数组上进行元素交换,无需额外空间。使用双指针法,一个从数组头部开始,另一个从尾部开始,交换元素直到中间位置。

public static void reverseArrayInPlace(int[] arr) {
    int left = 0;
    int right = arr.length - 1;
    while (left < right) {
        int temp = arr[left];
        arr[left] = arr[right];
        arr[right] = temp;
        left++;
        right--;
    }
}

方法三:使用Collections.reverse() 对于List类型的集合,可以直接使用Collections.reverse()方法进行倒置。

import java.util.Collections;
import java.util.List;
import java.util.Arrays;

public static void reverseList(List<Integer> list) {
    Collections.reverse(list);
}

// 示例用法
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
reverseList(numbers);

方法四:使用Stream API Java 8及以上版本可以使用Stream API实现数组倒置。

import java.util.stream.IntStream;

public static int[] reverseArrayWithStream(int[] arr) {
    return IntStream.range(0, arr.length)
            .map(i -> arr[arr.length - 1 - i])
            .toArray();
}

字符串倒置的方法

方法一:使用StringBuilder.reverse() StringBuilder类提供了reverse()方法,可以方便地倒置字符串。

public static String reverseString(String str) {
    return new StringBuilder(str).reverse().toString();
}

方法二:字符数组交换 将字符串转换为字符数组,通过交换字符实现倒置。

public static String reverseStringInPlace(String str) {
    char[] chars = str.toCharArray();
    int left = 0;
    int right = chars.length - 1;
    while (left < right) {
        char temp = chars[left];
        chars[left] = chars[right];
        chars[right] = temp;
        left++;
        right--;
    }
    return new String(chars);
}

方法三:递归实现 通过递归的方式倒置字符串。

public static String reverseStringRecursive(String str) {
    if (str.isEmpty()) {
        return str;
    }
    return reverseStringRecursive(str.substring(1)) + str.charAt(0);
}

链表倒置的方法

方法一:迭代法 使用三个指针(前驱、当前、后继)遍历链表并倒置。

public static ListNode reverseList(ListNode head) {
    ListNode prev = null;
    ListNode current = head;
    while (current != null) {
        ListNode next = current.next;
        current.next = prev;
        prev = current;
        current = next;
    }
    return prev;
}

方法二:递归法 通过递归调用倒置链表。

java如何 实现倒置

public static ListNode reverseListRecursive(ListNode head) {
    if (head == null || head.next == null) {
        return head;
    }
    ListNode reversed = reverseListRecursive(head.next);
    head.next.next = head;
    head.next = null;
    return reversed;
}

总结

根据不同的数据类型和需求,可以选择合适的方法实现倒置。数组和字符串可以通过交换或使用库函数实现,链表则需要通过指针操作或递归完成。

标签: java
分享给朋友:

相关文章

java如何打开

java如何打开

安装Java开发环境 下载并安装Java Development Kit (JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME和PATH变量正…

java如何调用接口

java如何调用接口

调用接口的基本方法 在Java中调用接口通常涉及实现接口或使用接口引用对象。以下是几种常见场景的示例: 定义接口 public interface MyInterface { void d…

java如何创建数组

java如何创建数组

创建数组的基本方法 在Java中,数组是固定大小的同类型元素集合。创建数组需要声明数组类型并初始化。 声明数组 语法格式为 数据类型[] 数组名 或 数据类型 数组名[]: int[] arr1;…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…

java如何编写接口

java如何编写接口

编写Java接口的基本语法 在Java中,接口通过interface关键字定义,可以包含抽象方法、默认方法、静态方法和常量。 public interface MyInterface {…

java如何遍历map

java如何遍历map

遍历Map的几种方法 在Java中,遍历Map有多种方式,可以根据需求选择合适的方法。以下是常见的几种遍历方式: 使用entrySet遍历 通过entrySet()方法获取键值对的集合,可以同时访问…