package zuoye_1104;
import java.util.Arrays;
import java.util.Scanner;
/**
* 定义一个ce类,用于测试调用
* 工具类csgj.copy中的功能
*/
public class ce {
public static void main(String[] args) {
// Scanner s=new Scanner(System.in);
// //定义一个数组长度
// System.out.println("请输入数组长度");
// int l=s.nextInt();
// //定义一个数组src,长度为l
// int[] src=new int[l];
// int j=0;
// for (int i = 0; i <l; i++) {
// System.out.println("请输入数组中"+i+"位的数据");
// src[i]=(j=s.nextInt());
// }
// System.out.println(Arrays.toString(src));
// gjl.copy(src);
// gjl.copyArray2();
//调用方法insertValue(),将value的值插入到src数组中第 position 个位置
// gjl.insertValue();
//调用方法reverseArray(), 将数组元素倒置
gjl.reverseArray();
}
}
=====================================================================================================
package zuoye_1104;
import java.util.Arrays;
import java.util.Scanner;
import org.omg.Messaging.SyncScopeHelper;
/**
* 定义一个数组工具类copyArray1,该类中定义一些数组常用的方法
*/
public class gjl {
/**
* 实现数组对数组拷贝
* @param src
* @return
*/
public static int[] copy(int[] src) {
//定义一个数组dest[],长度与src相同
int[] dest=new int[src.length];
//使用for循环将获取的数组a中的数据拷贝到b数组中
for (int i = 0; i <src.length; i++) {
dest[i]=src[i];
}
//用 System.arrayCopy(,,,,);将
//获取的数组src中的数据拷贝到b数组中
//System.arraycopy(a, 0, b, 0, a.length);
//打印b数组所在的地址
System.out.println(dest);
//打印b数组中的元素
System.out.println(Arrays.toString(dest));
//
return dest;
}
/**
* 实现数组的扩容
*/
public static void copyArray2(){
Scanner s=new Scanner(System.in);
//键盘获取一个数组长度l
System.out.println("请输入数组长度");
int l=s.nextInt();
//定义一个数组src,长度为l
int[] src=new int[l];
int j=0;
for (int i = 0; i <l; i++) {
System.out.println("请输入数组中"+i+"位的数据");
src[i]=(j=s.nextInt());
}
//定义一个新数组src1,长度为src的两倍
int[] src1=new int[2*l];
//把src内的元素复制到src1内
System.arraycopy(src, 0, src1, 0, l);
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(src1));
}
public static void insertValue(){
Scanner s=new Scanner(System.in);
//键盘获取一个数组长度l
System.out.println("请输入数组长度");
int l=s.nextInt();
//定义一个数组src,长度为l
int[] src=new int[l];
int j=0;
for (int i = 0; i <l; i++) {
System.out.println("请输入数组中"+i+"位的数据");
src[i]=(j=s.nextInt());
}
//定义在数组src的第pos=l/2位插入元素value,
//value后的数据重新赋值
int value=999;
//定义数组src1接收重新赋值的数据
int[] src1=new int[l/2];
//利用for循环对l/2位置的数据重新赋值
for (int k = l/2; k <l; k++) {
System.out.println("请输入l/2位后重新赋值的数据,第"+k+"位数据为");
int y=s.nextInt();
src1[0]=y;
}
//打印src1中的数据
System.out.println("新赋值的数组的为"+Arrays.toString(src1));
//将数组src1中的元素复制到src中,从pos=l/2位开始
System.arraycopy(src1, 0, src, l/2, l/2);
//打印出数组src
System.out.println("数组src是"+Arrays.toString(src));
}
public static void reverseArray(){
Scanner s=new Scanner(System.in);
//键盘获取一个数组长度l
System.out.println("请输入数组长度");
int l=s.nextInt();
//定义一个数组src,长度为l
int[] src=new int[l];
int j=0;
//定义一个数组src1,长度为l,里面存储数组src中倒置的数据
int[] src1=new int[l];
for (int i = 0; i <l; i++) {
System.out.println("请输入数组中"+i+"位的数据");
src[i]=(j=s.nextInt());
//利用for循环将src中倒置的数据存储在数组src1中
}
int i=0;
for (int j1 = l-1; j1 >=0; j1--) {
src1[j1]=src[i];
i++;
}
//打印出数组src和src1中的数据
System.out.println("数组src中的数据为"+Arrays.toString(src));
System.out.println("数组src1中的数据为"+Arrays.toString(src1));
}
}