黑马程序员技术交流社区

标题: 如何用方法实现两个整数的交换呢 [打印本页]

作者: hahaxiaohe    时间: 2015-11-6 10:53
标题: 如何用方法实现两个整数的交换呢
试了一下,但是发现最后 形式参数的赋值改变, 不改变实际参数的值啊.  有没有什么好的方法?
作者: didixyy    时间: 2015-11-6 11:09
方法传递参数是肯定不行的,因为方法出栈后,方法里变量就消失了(没有在堆内存里开辟空间),除非你把变量记录在数组里,然后交换数组内的内容
作者: 阿呆2015    时间: 2015-11-6 12:25
  1. /*1,明确返回值类型void
  2. 2,明确参数列表int[] arr
  3. */
  4. class Demo1
  5. {
  6.         public static void main(String[] args)
  7.         {

  8.                 int[] arry={1,2,3,4,5};
  9.                 getEqual(arry);
  10.                 exchange(arry);

  11.         }
  12.         public static void getEqual(int[] arry)
  13.         {
  14.                 for (int i =0;i<arry.length/2 ;i++ )
  15.                 {
  16.                         int temp = arry[i];
  17.                             arry[i]=arry[arry.length-1-i];
  18.                                 arry[arry.length-1-i]=temp;
  19.                 }
  20.         }
  21.         public static void exchange(int[] arry)
  22.         {
  23.                 for (int j= 0;j<arry.length ;j++)
  24.                 {
  25.                         System.out.println(arry[j]+" ");
  26.                 }
  27.         }
  28.   }
复制代码

作者: 阿呆2015    时间: 2015-11-6 12:26
阿呆2015 发表于 2015-11-6 12:25

这样行吗????
作者: WosLovesLife    时间: 2015-11-6 13:54
我记得最早看关于操作符的视频的时候,讲过用位移什么可以实现,一句话就搞定了……但是完全不记得怎么做。
作者: WosLovesLife    时间: 2015-11-6 13:56
本帖最后由 WosLovesLife 于 2015-11-6 13:57 编辑

刚才百度了下就找到了http://blog.csdn.net/zlqqhs/article/details/8182637
int x = 10;

int y = 20;

x = x ^ y;

y = x ^ y;

x = x ^ y;
另外楼主有兴趣可以看看网刚发表的一个帖子,苦于没人看来拉人气……。

作者: 刘旭波    时间: 2015-11-6 21:04
6楼用的是与非的方法吧?
作者: Jared    时间: 2015-11-6 23:29
怎么看楼层




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2