Java数组之间的左移和右移

public class 左移一位{
    public static void main(String[] args) {
        int arr[] = new int[9];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=i+1;
        }
//		第一位保存在t中
        int t = arr[0];
//		向左移一位
        for (int j = 0; j < arr.length - 1; j++) {
            arr[j] = arr[j + 1];
        }
//		第一位移动到最后一位
        arr[arr.length - 1] = t;

        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}
public class 右移一位{
	public static void main(String[] args) {
		int arr[] = new int[9];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = i + 1;
		}
//		最后一位保存在t中
		int t = arr[arr.length - 1];
//		向右移一位
		for (int j = arr.length - 1; j > 0; j--) {
			arr[j] = arr[j - 1];
		}
//		最后一位移动到第一位
		arr[0] = t;

		for (int i = 0; i < arr.length; i++) {
			System.out.print(arr[i] + " ");
		}
	}
}

 同理,如果要移动n位。

public class 左移n位{
    public static void main(String[] args) {
        int arr[] = new int[9];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=i+1;
        }
//		向左移2位
        for (int i = 0; i < 2; i++) {
//		第一位保存在t中
        int t = arr[0];
        for (int j = 0; j < arr.length - 1; j++) {
            arr[j] = arr[j + 1];
        }
//		第一位移动到最后一位
        arr[arr.length - 1] = t;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}
public class 右移n位{
    public static void main(String[] args) {
        int arr[] = new int[9];
        for (int i = 0; i < arr.length; i++) {
            arr[i]=i+1;
        }
//		向右移2位
        for (int i = 0; i < 2; i++) {
//		最后一位保存在t中
        int t = arr[arr.length-1];
//		向右移一位
        for (int j = arr.length - 1; j >0; j--) {
            arr[j] = arr[j-1];
        }
//		最后一位移动到第一位
        arr[0] = t;
        }
        
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i]+" ");
        }
    }
}

posted @ 2022-05-12 08:57  卟怪  阅读(233)  评论(0编辑  收藏  举报