日期:2014-05-20  浏览次数:20708 次

如何在List中交换其中的数据
List   l=new   ArrayList();
l.add(1);
l.add(2);
l.add(3);
l.add(4);
l.add(5);
l.add(6);

Object   o=l.get(2);
Object   o1=l.get(3);
Object   temp=o;
o=o1;
o1=temp;

for(int   i=0;i <l.size();i++)
System.out.print(l.get(i));


我这段代码为什么不能工作哪?输出还是123456

------解决方案--------------------
List l=new ArrayList();
l.add(1);
l.add(2);
l.add(3);
l.add(4);
l.add(5);
l.add(6);

Object o=l.get(2);
l.remove(2);
l.add(3,o);

for(int i=0;i <l.size();i++)
System.out.print(l.get(i));
------解决方案--------------------
l.get(2);
返回的已经是它的拷贝了,你在外面做交换,自然不会对列表中的数据作用。
另外,list.add(3), 隐含了封箱拆箱操作。