简单的数组的传递

一、向方法传递数组参数:
传递基本数据类型值与传递数组引用变量给方法存在不同
第一个方法swap不能讲两个整型参数对换
第二个方法swapArray成功的对换了数组a中的两个元素

public class TestPassArray{
    public static void main(String[] args){
        int [] a ={1,2};
        System.out.println("调用swap前");
        System.out.println("数组a={"+a[0]+","+a[1]+"}");
        swap(a[0],a[1]);
        System.out.println("调用swap后");
        System.out.println("数组a={"+a[0]+","+a[1]+"}");

        System.out.println("调用swapArray前");
        System.out.println("数组a={"+a[0]+","+a[1]+"}");
        swapArray(a);//调用时即把a[]传递给了array[]
        System.out.println("调用swapArray后");
        System.out.println("数组a={"+a[0]+","+a[1]+"}");

    }
    public static void swap(int n1,int n2){
        int temp = n1;
        n1=n2;
        n2=temp;
    }
    public static void swapArray(int[] array){
        int temp = array[0];
        array[0]=array[1];
        array[1]=temp;
    }
}

运行结果:
调用swap前
数组a={1,2}
调用swap后
数组a={1,2}
调用swapArray前
数组a={1,2}
调用swapArray后
数组a={2,1}

结论:
swap方法中的参数为基本数据类型,调用swap(a[0],a[1])时,只是将a[0],a[1]的值分别传给了n1,n2。而n1,n2独立存储在另一个不同于a[0],a[1]的内存位置。因此不导致数组a的元素对换。

swapArray方法的参数是一个数组,方法外的数组a和方法内的数组array都指向同一内存位置中的同一数组。因此不论在此方法内操作array还是在方法外操作数组a,实质上都在对同一个数组进行操作。

二、从方法中返回数组:
方法可以返回一个数组
以下代码返回一个与输入数组顺序相反的数组

public class TestReturnArray{
    public static void main(String[] args){
        int[] list1 = {1,2,3,4,5,6};
        int[] list2=reverse(list1);//从reverse方法获取返回值 并赋值给list2

        System.out.println("初始化的数组:");
        for(int i=0;i<list1.length;i++){
            System.out.print(list1[i]);
            }
        System.out.print("\n");


        System.out.println("改变后的数组:");
        for(int i=0;i<list1.length;i++){
            System.out.print(list2[i]);
        }

    }
    public static int[] reverse(int[] list){
        int[] result = new int [list.length];

        for(int i=0,j=result.length-1;   i < list.length;   i++, j--){
            result[j]=list[i];
        }
        return result;//返回一个数组
    }

}

运行结果:
初始化的数组:
123456
改变后的数组:
654321

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值