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

ArrayList存储
Tea   tea=new   Tea();
ArrayList   b   =   new   ArrayList();
tea.setA(2);
b.add(tea);
tea.setA(5);
b.add(tea);

这样后   b.get(1),   b.get(2)   一样  怎么解决使得他们不一样??
Tea 类
class   Tea{
private   int   a;

public   int   getA()   {
return   a;
}

public   void   setA(int   a)   {
this.a   =   a;
}
}

------解决方案--------------------
不一样的
而且你应该用b.get(0), b.get(1)
------解决方案--------------------
也是一样的
------解决方案--------------------
声明两个对象
Tea tea=new Tea();
Tea tea1=new Tea();
ArrayList b = new ArrayList();
tea.setA(2);
b.add(tea);
tea1.setA(5);
b.add(tea1);
就可以了
------解决方案--------------------
每加一次,重新建一个Tea()对象
------解决方案--------------------
看了真是无语呢,这样的问题
Tea tea=new Tea();
ArrayList b = new ArrayList();
tea.setA(2);
b.add(tea);
tea.setA(5);
b.add(tea);

这样后 b.get(1), b.get(2) 一样  怎么解决使得他们不一样??
我靠这样出来肯定是同一内容了

b.get(0),b.get(1) 都是引用到一个实例中,而这个实A的值就是5 也许用C++中的指针来解说更容易理解一些