当前位置:首页 > 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--;
    }
}

平移图形或图像

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

java如何平移

使用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类提供了更灵活的平移和变换操作。

java如何平移

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);
}

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

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程序

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

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

如何配置java环境变量

如何配置java环境变量

下载并安装JDK 从Oracle官网或OpenJDK项目下载适合操作系统的JDK安装包。运行安装程序,按照提示完成安装,默认路径通常为C:\Program Files\Java\jdk-版本号。 配…

java如何获取当前时间

java如何获取当前时间

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

如何选择java培训

如何选择java培训

评估培训机构资质 选择有正规资质的机构,查看其营业执照、办学许可证等。优先考虑具备人力资源和社会保障部或教育部认证的机构,这类机构的教学质量和课程设置通常更规范。 考察课程内容与行业需求匹配度…

如何系统的学习java

如何系统的学习java

学习Java的基础知识 Java的基础知识包括语法、数据类型、变量、运算符、控制流语句等。可以通过官方文档或入门书籍如《Java核心技术》来掌握这些内容。编写简单的程序练习基础语法,例如打印“Hell…