首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用Java交换两个元素的swap函数

用Java交换两个元素的swap函数

作者头像
用户7886150
修改2020-12-04 17:18:09
修改2020-12-04 17:18:09
1.9K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: 如何在Java中交换或交换对象

我在一项目中要用到 大量的元素交换,于是必须写一个交换两个元素的swap函数,众所周知,Java中的基本元素是不支持传址的,必须是对象或数组才能传址(引用),我开始也走了很多弯路,开始用自带的Integer包装类,发现不行。 

后来自己封装了一个类能成功交换了。 

class intObject{ int value;    intObject(){} intObject(int pV){  value=pV; } public void setValue(int pV){  value=pV; } public int getValue(){  return value; }};public class  Swap{ public static void swap(intObject a,intObject b){  int temp;  temp=a.value;  a.setValue(b.getValue());  b.setValue(temp); } public static void main(String[] args)  {       intObject a=new intObject(3),   b=new intObject(5);  swap(a,b); 

  System.out.println(a.value);  System.out.println(b.value); }}53 

后来又想用数组试试看: 

public class  Swap{ public static void swap(int[] a,int[] b){  a[0]^=b[0];  b[0]^=a[0];  a[0]^=b[0];  } public static void main(String[] args)  {  int a[]={3},b[]={5};  System.out.println("before swap:");  System.out.print(""+a[0]+'/t');  System.out.println(b[0]);  swap(a,b);  System.out.print(""+a[0]+'/t');  System.out.println(b[0]); 

 }} 

before swap:3       55       3呵呵,也行 

但要注意一点的是,在代码中调用后须把交换后的值赋回去,例如: 

..... 

int a[]={pA[j]},   b[]={pA[j+1]};   swap(a,b);   pA[j]=a[0];   pA[j+1]=b[0]; 

...... 

可能这样还不如直接在代码中写交换代码简洁,但这里只说明这样一种方法

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档