数组的简单操作

一,数组的反转

   给定一数组,反转后数组倒置

    例如:原数组:1,2,3,4,5,6

      倒置后数组:6,5,4,3,2,1

    思路:定义两个相同长度的数组;原数组的尾赋值给新数组的头,倒数第二位给新数组第二位,以此类推:

    

 

    

代码:

public class Main {

    public static void main(String[] args) {
       //数组的反转
        ArraysSet set = new ArraysSet();
       int[] arr = {1,2,3,4,5,6};
        arr=set.arrReversal(arr);
        for (int i=0;i<arr.length;i++) {
            System.out.println(arr[i]);
        }


   
}
class ArraysSet{
    //数组反转方法的实现
    public int[] arrReversal(int[] arr){
        int[] a = new int[arr.length];
        for(int i= 0;i<arr.length;i++) {
            a[i] = arr[arr.length - 1 - i];
        }
        return a;
    }
   
   
}

 二:数组的去零

  把原数组中的零去掉获取新数组

  例:int[]  oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}

    newArr={1,3,4,5,6,6,5,4,7,6,7,5}

  思路:

    创建一个新数组,新数组长度为老数组长度减去零元素后的长度,把老数组元素挨个放入新数组;

 

  代码:

public class Main {

    public static void main(String[] args) {

        //数组去零操作
       /* int[] oldArr={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
        int[] newArr =set.zeroDele(oldArr);
        for(int i=0;i<newArr.length;i++){
            System.out.println(newArr[i]);
        }*/
       
}
class ArraysSet{
  
    // 数组查零个数
    public int zeroNumber(int[] arr){
        int num = 0;
        for (int i=0;i<arr.length;i++){
            if(arr[i]==0)
                num++;
        }
        return num;
    }
    //数组去零
    public int[] zeroDele(int[] arr){
        int num = zeroNumber(arr);
        int n=0;
        int[] a = new int[arr.length-num];
        for(int i=0;i<arr.length;i++){
            if(arr[i]==0)
            {
                n++;
            }
            else{
                a[i-n]=arr[i];
            }
        }
        return a;
    }
   
}

  

  三:数组的合并,

    给出两个数组,把数组合并为新的数组:

      数组a:“1,7,9,11,13,15,17,19”

      数组b:“2,4,6,8,10”

      数组c:“1,7,9,11,13,15,17,19,2,4,6,8,10”

    思路:创建c数组长度为a数组与b数组长度之和,首先把a数组元素赋值到c数组前面,然后将b数组元素接着赋值直到结束

 

    代码:

public class Main {

    public static void main(String[] args) {
        //数组合并
        int[] a={1,7,9,11,13,15,17,19};
        int[] b={2,4,6,8,10};
        int[] c=set.amalArr(a,b);
        for (int i=0;i<c.length;i++) {
            System.out.println(c[i]);
        }
     }
}
class ArraysSet{
    
    //数组合并
    int[] amalArr(int[] a,int[] b){
        int[] c = new int[a.length+b.length];
        for(int i=0;i<(a.length+b.length);i++){
            if(i<a.length){
                c[i] =a[i];
            }
            else{
                c[i] =b[i-a.length];
            }
        }
        return c;
    }
}

  

posted on 2019-04-23 12:58  maoboss  阅读(176)  评论(0)    收藏  举报

导航