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

解决方案 »

  1.   

    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));
      

  2.   

    Object o=l.get(2);
    Object o1=l.get(3);
    Object temp=o;
    o=o1;
    o1=temp;
    -------
    这段代码只对o跟o1交换,跟ArrayList没关系.
      

  3.   

    l.get(2);
    返回的已经是它的拷贝了,你在外面做交换,自然不会对列表中的数据作用。
    另外,list.add(3),  隐含了封箱拆箱操作。
      

  4.   

    或者这样:
          Object o=l.get(2);
            l.set(2,l.get(3));
            l.set(3, o);
      

  5.   

    请问你的程序编译能通过么?
    l.add(1);?