数组的定义与使用(三)

3.数组的应用场景

3.1保存数据

public static void main(String[] args){
    int[] array = {1,2,3};

    for(int i = 0; i<array.length;++i){
        System.out.println(array[i]+" ");
    }
}

3.2作为函数的参数

1.参数传基本数据类型

public static void main(String[] args){
    int num = 0;
    func(num);
    System.out.println("num = "+num);
}

public static void func(int x){
    x = 10;
    System.out.println("x = "+x);
}
//执行结果
x = 10
num = 0

 发现在func方法中修改形参x的值,并不影响实参num的值。

2.参数传数组类型(引用数据类型)

public static void main(String[] args){
    int[] arr = {1,2,3};
    func(arr);
    System.out.println("arr[0] = "+ arr[0]);
}

public static void func(int[] a){
    a[0] = 10;
    sout("a[0] = " + a[0]);
}
//执行结果
a[0] = 10
arr[0] = 10

发现在func方法内部修改数组的内容,方法外部的数组内容也发生改变

因为数组是引用类型,按照引用类型来传递,是可以修改其中存放的内容的。 

总结:所谓的“引用”本质上只是存了一个地址。Java将数组设定成引用类型,这样的话后续进行数组参数传参,其实只是将数组的地址传入到函数形参中。这样可以避免对整个数组的拷贝(数组可能比较长,那么拷贝开销就会很大)。

3.3作为函数的返回值

比如:获取斐波那契数列的前N项

public static TestArray{
    public static int[] fib(int n){
        if(n<=0){
            return null;
        }

        int[] array = new int[n];
        array[0] = array[1] = 1;
        for(int i = 2; i<n;++i){
            array[i] = array[i-1]+array[i-2];
        }
        
        return array;
    }
    public static void main(String[] args){
        int[] array = fib(10);
        for(int i = 0;i<array.length;i++){
            Sout(array[i]);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值