使用泛型翻转多种数组
import java.util.*;
import java.lang.reflect.Array;
public class Reverse {
public static void main(String[] args) {
int a[] = new int[]{0,1,2,3,4,5,6,7};
//reverseInt(a);
System.out.println("Start reverse int[]:");
reverse(a);
System.out.println("\r\n");
String[] b = new String[]{"hello","world",};
System.out.println("Start reverse String[]:");
reverse(b);
System.out.println("\r\n");
char[] c = new char[]{'a','b','c','d','e'};
System.out.println("Start reverse char[]:");
reverse(c);
System.out.println("\r\n");
}
public static int reverseInt(int[] array){
if(array == null) return -1;
int N = array.length;
String before = "";
for(int i=0;i<N;i++){
before += array[i]+"----";
}
System.out.println("Before:"+before);
for(int j = 0;j<N/2;j++){
int temp = array[N-j-1];
array[N-j-1] = array[j];
array[j] = temp;
}
String after = "";
for(int k = 0;k<N;k++){
after += array[k]+"----";
}
System.out.println("After:"+after);
return 0;
}
public static <T> T reverse(T array){
int N = Array.getLength(array);
String before = "";
for(int i=0;i<N;i++){
before += Array.get(array,i)+" ";
}
System.out.println("Before:"+"\r\n"+before);
Class<?> type = array.getClass().getComponentType();
Object result = Array.newInstance(type,N);
System.arraycopy(array,0,result,0,N);
Object temp;
for(int i = 0;i < N/2;i++){
temp = Array.get(result,i);
Array.set(result,i,Array.get(result,N-i-1));
Array.set(result,N-i-1,temp);
}
String after = "";
for(int j = 0; j < N; j++){
after += Array.get(result,j) + " ";
}
System.out.println("use T after:" + "\r\n"+after);
return (T)result;
}
}

http://www.cnblogs.com/makexu/

浙公网安备 33010602011771号