读书人

ArrayList存储解决思路

发布时间: 2012-03-22 17:43:57 作者: rapoo

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

读书人网 >J2SE开发

热点推荐