zoukankan      html  css  js  c++  java
  • 数组循环移动(娱乐代码)

    package com.demo.sw.test;
    
    /**
     * 
     * 循环移动一个数组中的数字:
     * 如数数组:1,2,3,4,5,6,7
     * 向前移动 3 位得到的结果是:
     * 4,5,6,7,1,2,3
     * @author Mr.J
     *
     */
    public class ArrayMove {
    	
    	public static void main(String[] args) {
    		
    		int[] arr = new int[12];
    		// 初始化要移动的数组
    		for (int i = 0; i < arr.length; i++) {
    			arr[i] = i + 1;
    		}
    
    		int num = 17; // 要移动的位数
    		
    		moveNums(arr, num); // 调用要移动的方法
    		// 显示移动的结果
    		System.out.println("调用有返回值的方法:");
    		for (int i = 0; i < arr.length; i++) {
    			System.out.print(arr[i] + " ");
    		}
    
    		System.out.println();
    		
    	}
    
    	/*
    	 * 方法 需要传进要移动的数组和移动的位移量
    	 */
    	public static int[] moveNums(int[] arr, int num) {
    		
    		if(num > arr.length){ // 如果移动的位移量大于数组的长度,则会多转几圈
    			num = num % arr.length;
    		}
    		// 声明一个数组来存储数组前边被移动的数字
    		int[] copy = new int[num];
    		
    		// 把原数组中要移动的数字存储起来
    		for (int i = 0; i < copy.length; i++) {
    			copy[i] = arr[i];
    		}
    
    		// 移动数组
    		for (int i = 0; i < arr.length - num; i++) {
    			arr[i] = arr[i + num];
    		}
    
    		// 移动完后把原来的数字追加到数组后边
    		for (int i = 0; i < copy.length; i++) {
    			arr[arr.length - num + i] = copy[i];
    		}
    
    		return arr;
    
    	}
    
    }
  • 相关阅读:
    MySQL 一次非常有意思的SQL优化经历:从30248.271s到0.001s
    Oracle 11g 自动收集统计信息
    C# 获取当前方法的名称空间、类名和方法名称
    C# 数值的隐式转换
    C# using 三种使用方式
    C#、Unity 数据类型的默认值
    Unity for VsCode
    C# Lambda
    git push以后GitHub上文件夹灰色 不可点击
    C#保留小数
  • 原文地址:https://www.cnblogs.com/icenter/p/1988836.html
Copyright © 2011-2022 走看看