当前位置:首页 > Java

java如何平移

2026-03-20 09:08:50Java

平移数组或集合元素

在Java中平移数组或集合元素可以通过多种方式实现。以下是几种常见的方法:

使用临时数组 创建一个临时数组存储需要平移的元素,然后将剩余元素移动到新位置,最后将临时数组的元素复制回原数组。

public static void rotateArray(int[] arr, int shift) {
    int n = arr.length;
    shift = shift % n;
    if (shift < 0) {
        shift += n;
    }
    int[] temp = new int[shift];
    System.arraycopy(arr, n - shift, temp, 0, shift);
    System.arraycopy(arr, 0, arr, shift, n - shift);
    System.arraycopy(temp, 0, arr, 0, shift);
}

使用反转法 通过反转数组的不同部分实现平移,效率较高且不需要额外空间。

public static void rotateArray(int[] arr, int shift) {
    int n = arr.length;
    shift = shift % n;
    if (shift < 0) {
        shift += n;
    }
    reverse(arr, 0, n - 1);
    reverse(arr, 0, shift - 1);
    reverse(arr, shift, n - 1);
}

private static void reverse(int[] arr, int start, int end) {
    while (start < end) {
        int temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
}

平移图形或图像

在图形处理中,平移通常指移动图像或图形对象的位置。

使用Graphics2D平移 Java的Graphics2D类提供了平移方法,可以移动绘图上下文的原点。

import java.awt.*;
import java.awt.geom.*;

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    g2d.translate(50, 50); // 向右和向下各平移50像素
    g2d.fillRect(0, 0, 100, 100); // 绘制矩形
}

使用AffineTransform AffineTransform类提供了更灵活的平移和变换操作。

import java.awt.*;
import java.awt.geom.*;

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g;
    AffineTransform transform = new AffineTransform();
    transform.translate(50, 50); // 设置平移
    g2d.setTransform(transform);
    g2d.fillRect(0, 0, 100, 100); // 绘制矩形
}

平移字符串

平移字符串通常指循环移动字符串中的字符。

使用子字符串拼接 通过截取子字符串并重新拼接实现平移。

public static String rotateString(String s, int shift) {
    int n = s.length();
    shift = shift % n;
    if (shift < 0) {
        shift += n;
    }
    return s.substring(n - shift) + s.substring(0, n - shift);
}

使用字符数组 将字符串转换为字符数组进行操作,适用于需要频繁修改的情况。

java如何平移

public static String rotateString(String s, int shift) {
    char[] arr = s.toCharArray();
    int n = arr.length;
    shift = shift % n;
    if (shift < 0) {
        shift += n;
    }
    reverse(arr, 0, n - 1);
    reverse(arr, 0, shift - 1);
    reverse(arr, shift, n - 1);
    return new String(arr);
}

private static void reverse(char[] arr, int start, int end) {
    while (start < end) {
        char temp = arr[start];
        arr[start] = arr[end];
        arr[end] = temp;
        start++;
        end--;
    }
}

标签: java
分享给朋友:

相关文章

java如何创建类

java如何创建类

创建类的基本语法 在Java中,类通过class关键字定义,语法如下: [访问修饰符] class 类名 { // 成员变量(属性) // 构造方法 // 成员方法 }…

如何编写java

如何编写java

编写Java程序的基本步骤 安装Java开发工具包(JDK),确保系统环境变量配置正确。可以从Oracle官网下载最新版本的JDK并进行安装。 选择一个合适的集成开发环境(IDE),如Eclipse…

如何查看java版本

如何查看java版本

查看Java版本的命令行方法 在终端或命令提示符中运行以下命令,可以快速查看已安装的Java版本: java -version 输出示例: java version "17.0.1" 20…

java如何创建文件

java如何创建文件

创建文件的方法 在Java中创建文件可以通过多种方式实现,以下是常见的几种方法: 使用File.createNewFile()方法 这种方法适用于简单的文件创建需求。需要先创建一个File对象,然…

如何运行java

如何运行java

运行Java程序的方法 安装Java开发工具包(JDK) 确保系统已安装JDK。可通过命令行输入java -version和javac -version验证是否安装成功。若未安装,需从Oracle官网…

java如何安装

java如何安装

安装Java的步骤 下载Java开发工具包(JDK) 访问Oracle官方网站或OpenJDK项目页面,选择适合操作系统的JDK版本进行下载。推荐下载最新稳定版本以确保兼容性和安全性。 运行安装程序…