A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xinleili3 中级黑马   /  2015-4-5 21:44  /  739 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. //今天看到了一个函数,对数组中的两个元素进行置换,这是怎么实现的?
复制代码

8 个回复

倒序浏览
不好意思,函数没加进去
  1. private static void swap(int[] arr,int a,int b)  
  2.     {  
  3.         arr[a]=arr[b]+(arr[b]=arr[a])*0;  
  4.     }
复制代码
回复 使用道具 举报
有更完整的么。。。
回复 使用道具 举报
看不懂啊,就是一个数组中,2个元素换位置吗?
最简单的行不行。定义第三个变量
回复 使用道具 举报
没看懂楼主的意思
回复 使用道具 举报
竟然真的可以实现,吊炸天,这是第四种方法了。

QQ截图20150405221851.png (1.81 KB, 下载次数: 16)

QQ截图20150405221851.png
回复 使用道具 举报
已经搞明白了,之前运算顺序没搞懂,测试了一下发现很简单,就是从左往右算,不引入第三方变量将两个数互换的另一种方式。
  1. class Test

  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 swap(1,2);
  6.         }

  7.         public static void swap(int a, int b)
  8.         {
  9.                 System.out.println("a="+a);//输出1
  10.                 System.out.println("b="+b);//输出2
  11.                 a=b+(b=a)*0;
  12.                 System.out.println("a="+a);//输出2
  13.                 System.out.println("b="+b);//输出1
  14.         }
  15. }
复制代码

回复 使用道具 举报
这个方法掉渣天!长知识了!!必须记下来!
回复 使用道具 举报
xinleili3 发表于 2015-4-5 22:28
已经搞明白了,之前运算顺序没搞懂,测试了一下发现很简单,就是从左往右算,不引入第三方变量将两个数互换 ...

赞一个!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马