java中如何交换两个引用类型的变量 10

能不能实现直接交换两个引用类型变量内的地址?可能我说的不够清楚首先我有两个对象然后我再去写一个方法,去实现这两个对象的交换... 能不能实现直接交换两个引用类型变量内的地址?
可能我说的不够清楚
首先我有两个对象
然后我再去写一个方法,去实现这两个对象的交换
展开
 我来答
1101302428
2013-07-24 · TA获得超过593个赞
知道答主
回答量:117
采纳率:0%
帮助的人:32.7万
展开全部
同一类的可以,如 A a=new A("2");System.out.println(a.hashcode());//及a的物理地址(与内存地址相对应)
A b=new A("1");System.out.println(b.hashcode());//b的物理地址
A c=a;
a=b;
b=c;
System.out.println(a.hashcode());
System.out.println(b.hashcode());
输出的结果将会是a和b的hashcode()互换了,这说明了他们的内存和物理地址都互换了
NiceBabyLuckys
2013-07-24 · TA获得超过167个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:42.4万
展开全部
对你们无语,把这两个变量存入数组中或者集合中,然后调用方法传入该参数,并交换,交换后返回该数组就行了!要好好利用堆的机制以及数组和集合的性质
//例子,没测试,不过就是这个理念,另外不返回obj也可以,只要你上层传入的obj引用地址不变,可以继续使用。
public class DemoTest{
public static void main(String[] args){
String a="对象1";

int b=10;//对象2
Object[] obj={a,b};
obj=swap(obj);//置换成功!
}
public Object[] swap(Object[] obj){
Object temp=obj[0];
obj[0]=obj[1];
obj[1]=temp;
return obj;
}
}
//程序这东西,没有做不到,只有想不到
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友5c33719
2015-10-10 · 超过30用户采纳过TA的回答
知道答主
回答量:116
采纳率:100%
帮助的人:25.7万
展开全部
如 A a=new A("2");
System.out.println(a.hashcode());//及a的物理地址(与内存地址相对应)
A b=new A("1");
System.out.println(b.hashcode());//b的物理地址
A c=a;
a=b;
b=c;
System.out.println(a.hashcode());
System.out.println(b.hashcode());
输出的结果将会是a和b的hashcode()互换了,这说明了他们的内存和物理地址都互换了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
BachelorPig
2013-07-24 · TA获得超过187个赞
知道小有建树答主
回答量:192
采纳率:80%
帮助的人:139万
展开全部
你是想做对象交换吧
学java尽量不要去想地址什么的C中要想的事,java就是对象操作,对于底层的地址java其实做了屏蔽,就是为了程序员不去操作地址
追问
我们老师非得说可以,我问他怎么弄,他说以后告诉我
还说什么引用的引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蓝星人抢不到
2013-07-23 · TA获得超过763个赞
知道小有建树答主
回答量:924
采纳率:0%
帮助的人:601万
展开全部
JNI应该能实现你的要求,纯Java不太好实现
更多追问追答
追问
我们老师说的,我今天想了半天没想出来
说什么引用的引用,我试了半天也还是不行
追答
你是不是像不通过第三个参数就直接交换两个数字?另外Java中对象全是引用类型,基本变量才是值类型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式