1 package dataStructure; 2 import java.util.Arrays; 3 import java.util.ArrayList; 4 public class Test1 { 5 static int [] a =new int[10]; 6 static{ 7 for (int i=0;i<10;i++) 8 a[i]=i; 9 } 10 11 public ArrayList<Integer> inverse(int [] a,ArrayList<Integer> ra){//方法1:只能把整个数组倒置输出,不能改变原数组 12 int n=a.length; 13 if (n==1){//递归的停止条件 14 ra.add(a[n-1]); 15 //System.out.println(a[n-1]); 16 } 17 else{ 18 ra.add(a[n-1]); 19 //System.out.println(a[n-1]); 20 inverse( Arrays.copyOfRange(a, 0, n-1),ra); 21 } 22 return ra; 23 } 24 25 public int [] revert(int a[], int n, int m){//数组元素倒置,并且设定初始位置和要倒置元素的个数,且可以改变原数组,方法2 26 if (m == 0) 27 ; 28 else 29 { 30 int tmp = a[m - 1]; 31 revert(a, n + 1, m - 1); 32 a[n] = tmp; 33 } 34 return a; 35 } 36 37 public static void main(String args[]){ 38 Test1 n =new Test1(); 39 ArrayList<Integer> rea=new ArrayList<Integer>(); 40 for (Integer line :n.inverse(a,rea)){ 41 System.out.println(line); 42 }//方法1 43 for (int arr:n.revert(a,0,10)){ 44 System.out.println(arr); 45 } 46 System.out.println(a[-1]); 47 }//方法2 48 }