数组程序练习

来源:互联网 发布:行行 知乎 编辑:程序博客网 时间:2024/06/03 02:54

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));
      }
      
}
1 0