美文网首页
29-数组与方法

29-数组与方法

作者: c88bc9f9d088 | 来源:发表于2020-11-06 09:02 被阅读0次

    对应引用数据类型而言,主要的特点是空运与方法进行引用传递,而数组本身也属于引用类型,所以自然也可以通过方法实现引用传递的操作。

范例:实现一个数组的引用传递

public  class ArrayDemo {
    public static void main(String args[]){
        int data[] = new int[]{1,2,3,4,5};
        printArray(data); //传递数组
    }
    //要求接受一个int型的数组
    public static void printArray(int temp[]){
        for(int x = 0; x<temp.length; x ++){
            System.out.println(temp[x]);
        }
    }
}

    对于此时的引用传递具体的内存关系如下。


    既然可以通过方法来接收一个数组,那么也就可以通过方法返回一个数组对象,那么此时只需要在方法的返回值类型上进行控制即可。

范例:定义方法返回数组

public  class ArrayDemo {
    public static void main(String args[]){
        int data[] = initArray();//通过方法可以获得数组内容
        printArray(data); //传递数组
    }
    public static int[] initArray(){
        int arr[] = new int[]{1,2,3,4,5};
        return arr; //返回一个数组

    }
    //要求接受一个int型的数组
    public static void printArray(int temp[]){
        for(int x = 0; x<temp.length; x ++){
            System.out.println(temp[x]);
        }
    }
}

    下面来针对此程序进行内存关系分析。


范例:通过方法修改数组内容

public  class ArrayDemo {
    public static void main(String args[]){
        int data[] = new int[]{1,2,3,4,5};
        changeArray(data);
        printArray(data); //传递数组
    }
    public static void changeArray(int arr[]){
        for(int x = 0; x < arr.length; x++){
            arr[x] *= 2;
        }
    }
    //要求接受一个int型的数组
    public static void printArray(int temp[]){
        for(int x = 0; x<temp.length; x ++){
            System.out.println(temp[x]);
        }
    }
}

    本程序的内存关系如下。


范例:随意定义一个int数组,要求可以计算出这个数组元素的总和、最大值、最小值、平均值。
    对于此程序的最基本的实现如下:

public  class ArrayDemo {
    public static void main(String args[]){
        int data[] = new int[]{1,2,3,4,5};
        int sum = 0;
        double avg = 0;
        int max = data[0];
        int min = data[0];
        for(int x = 0; x < data.length;x++){
            if(data[x] > max){
                max = data[x];
            }
            if(data[x] < min){
                min = data[x];
            }
            sum += data[x];
        }
        avg = sum / data.length;
        System.out.println("数组总和为:" + sum);
        System.out.println("数组平均值为:" + avg);
        System.out.println("数组最大值为:" + max);
        System.out.println("数组最小值为:" + min);
    }
}

    主方法所在的类往往被称为主类,那么既然是主类肯定不希望涉及过于复杂的功能。在进行开发的过程之中,主方法本身就相当于一个客户端,而对于客户端的代码应该尽量简单一些,所以这个时候最好的做法是将这一些列计算过程交给单独的程序类去完成。

范例:改善操作设计

class ArrayUtil { //是一个操作工具的类
    private int sum;
    private double avg;
    private int max;
    private int min;
    public ArrayUtil(int data[]){  //进行数组计算
        this.max = data[0]; //假设第一个是最大值
        this.min = data[0]; //假设第一个是最小值
        for(int x = 0; x < data.length;x++){
            if(data[x] > max){
                this.max = data[x];
            }
            if(data[x] < min){
                this.min = data[x];
            }
            this.sum += data[x];
        }
        this.avg = this.sum / data.length;
    }
    public int getSum(){
        return this.sum;
    }
    public double getAvg(){
        return this.avg;
    }
    public int getMax(){
        return this.max;
    }
    public int getMin(){
        return this.min;
    }
}
public  class ArrayDemo {
    public static void main(String args[]){
        int data[] = new int[]{1,2,3,4,5};
        ArrayUtil util = new ArrayUtil(data);
        System.out.println("数组总和为:" + util.getSum());
        System.out.println("数组平均值为:" + util.getAvg());
        System.out.println("数组最大值为:" + util.getMax());
        System.out.println("数组最小值为:" + util.getMin());
    }
}

    此时的主类就好比我们使用电脑一样,只关心如何操作,而具体的操作过程被类进行包装了。

相关文章

  • 29-数组与方法

        对应引用数据类型而言,主要的特点是空运与方法进行引用传递,而数组本身也属于引用类型,所以自然也可以通过方法...

  • 数组去重的五种方法

    方法1—— 新建数组,遍历原数组与新数组每一项比较 方法2—— 剪切原数组首项,与剩余数组每一项比较 方法3—— ...

  • shell数组

    数组创建方法 输出整个数组 获取数组元素个数,方法与获取字符串长度的方法相同 获取数组单个元素的长度

  • 方法与数组

    方法 什么是方法 方法就是一段可以重复调用的代码,方法也称为函数 声明一个方法的具体语法格式如下 修饰符 返回值类...

  • Scala多维数组、Java数组与Scala数组的隐式转换

    多维数组:数组的元素,还是数组,数组套数组,就是多维数组 构造指定行与列的二维数组:Array.ofDim方法 构...

  • 数组基础

    数组基础 新建数组 数组方法和属性 数组常用方法 数组的遍历方法

  • go优化——容易犯错点记载

    内容 1 切片与数组2 defer3 make与new4 方法与函数5 闭包6 循环 1 切片和数组 数组和结构体...

  • Javascript中数组和字符串的常用方法

    Javascript中数组与字符串常用方法 数组常用方法 学习思路:这个方法干啥用?是否要传入参数?是否有返回值?...

  • JS中every()和some()的用法

    every() 与 some()方法都是js中数组的迭代方法。 every(): 对数组中每一项运行给定函数,如...

  • JavaScript高级教程设计——读书笔记

    数组方法 插入与删除:push、pop、shift、unshift进行数组元素的插入与删除。 排序:reverse...

网友评论

      本文标题:29-数组与方法

      本文链接:https://www.haomeiwen.com/subject/eowzvktx.html