首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

ArrayList存储解决思路

2012-03-22 
ArrayList存储TeateanewTea()ArrayListbnewArrayList()tea.setA(2)b.add(tea)tea.setA(5)b.add(tea

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++中的指针来解说更容易理解一些

热点排行