java根据一个已知数组,创建新数组,新数组长度翻倍,新数组的前一半内容为原数组,后一半内容为原数组的反序。
如果这个已知数组是任意类型的数组,如字符串或其他对象数组,则可能需要使用泛型等办法来编写,下面是默认已知数组为int类型数组的一个测试例子,供参考:
public class DoubleArrExchangeTest<T> {
public static void main(String[] args) {
// TODO Auto-generated method stub
int arr[] = {1,2,3,4,5,6,7,8,9,10}; //原已知数组
//打印原数组的内容
System.out.println("原数组的内容为:");
for(int i=0;i<arr.length;i++) {
System.out.print(arr[i]+" ");
}
System.out.println();
int result[] = DoubleArrExchange(arr); //调用拷贝和反转操作的方法
//打印执行拷贝和反转操作后的新数组的内容
System.out.println("执行拷贝与反转操作后的新数组内容为:");
for(int i=0;i<result.length;i++) {
System.out.print(result[i]+" ");
}
}
//执行拷贝和反转操作的方法
public static int [] DoubleArrExchange(int [] arr) {
int [] result = new int[arr.length*2]; //新数组长度为原数组的两倍
//遍历原数组,执行拷贝和反转操作
for(int i=0;i<arr.length;i++) {
result[i] = arr[i]; //从新数组开始位置逐个拷贝原数组的元素
result[arr.length+i] =arr[arr.length-1-i]; //从新数组后半部分开始逐个反序拷贝原数组的元素,以完成反序操作
}
return result; //返回结果
}
}