Java编程中 交换数据的值

       好久没有写博客了,一直以为我写的博客如果是大家都了解的技术,那么我的贡献也就微乎其微了,故学到了新技术,新教训,也很少来写在博客上,最近听同学说,写博客若是为了贡献,那么直接去研究好了,那只是记录自己的成长,我想,是啊,很有道理,好了 ,废话不多说,开始写。

     会c和c++的童鞋都知道,交换值很简单,设置一个中间变量,来交换就很快搞定,可是在Java中如果交换的值是基本数据类型,那么交换就没有那么简单咯,好了,大家看下面一个例子:

        private static int a,b;
public static void swapOne(int i[],int index1,int index2){//有人会想到用数组,因为数组是引用类型
a=index1;
b=index2;
int temp =i[a];
i[a] =i[b];
i[b] = temp;
}
public static void swapTwo(int i, int j) {//当然咯,大家肯定首先想的就是利用中间值来替换咯
   int temp=i;
i=j;
j=temp;
}
public static void swapThree(int i,int j) {//当然,异或也可以完成,一个数 被另一个数异或两次,原数不变,还比设中间值效率高,不用多占内存
i^=j;
j^=i;
i^=j;
}
public static void swapFour(int i,int j) {//当然,这个好像也可以,可惜,不行
i=i+j;
j=i-j;
i=i-j;
}

可是上述都不能达到想要的效果,为什么呢,基本数据类型原因

那么,什么办法替换值呢,很简单,在需要替换的地方,进行替换,不用方法调用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值