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;
}
}
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)
ArrayList b = new ArrayList();
tea.setA(2);
b.add(tea);
tea.setA(5);
b.add(tea);
这样后 b.get(0), b.get(1) 一样 怎么解决使得他们不一样??
Tea 类
class Tea{
private int a;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
} 修改下掉b.get(1), b.get(2) ;
Tea tea=new Tea();
Tea tea1=new Tea();
ArrayList b = new ArrayList();
tea.setA(2);
b.add(tea);
tea1.setA(5);
b.add(tea1);
就可以了
个数也不知道的.
So>>这是不行的
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++中的指针来解说更容易理解一些
象你那样做只是在把同一个引用存到ArrayList里,
所以得到的是一样的内容
ArrayList b = new ArrayList();
for (int i = 0; i < 10; i++) {
tea = new Tea();
tea.setA(i);
b.add(tea);
}
要想保存着那一次的值,我们只要重新给它开发一块内存空间.只有一块内存空间的话,每次SET值的时候,前一次的值会被覆盖掉.
tea=new Tea();
tea=new Tea();
tea=new Tea();
tea=new Tea();
这样不会出错 ..
重新建对象给tea嘛 不过我是这样
b.add(new Tea(...));一样OK
的内容是最后一个set的值
所以每次应该重新new一个对象才对
讲得不错 ,呵呵