record在new之后得到了一块内存地址;
而你的set只是改变了这个对象的值,却不会为该对象重新分配一块内存;
你的recordList.add(record)相当于保存了record对象的引用地址;
所以只要你改变record对象,list中所有元素就都会改变;
解决方法是将HFCZ record = new HFCZ()这一个放在你的循环内,分配多块内存地址就可以了。
list:表, 一览表明细表目录名单。 在计算机领域指序列。在编程语言中List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、?等等。list 以模板方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料型态
可能要把对象声明放到循环内:while(rs.next()){Student stuTemp=new Student()
……
}
如果不行那还有一种可能是你的Student类里几个变量是不是定义成静态的了,也会出现这种问题
您好。下面是我修改后的代码。我使用了list的addAll方法来实现。感觉是实现了你说的要求,麻烦您再确认一下。
最后是我修改完之后的测试效果截图。
import java.util.ArrayList
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<String>list1 = new ArrayList<String>()
ArrayList<String>list2 = new ArrayList<String>()
ArrayList<String>list3 = new ArrayList<String>()
ArrayList<String>list = new ArrayList<String>()
list1.add("aaa")
list1.add("bbb")
list1.add("ccc")
list2.add("111")
list2.add("222")
list2.add("333")
list3.add("<<<")
list3.add(">>>")
list3.add("---")
list.addAll(list1)
list.addAll(list2)
list.addAll(list3)
System.out.println(list)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)