list值循环添加对象值重复问题应该怎么解决?

list值循环添加对象值重复问题应该怎么解决?,第1张

list值循环添加对象值重复的原因和解决方法如下:

record在new之后得到了一块内存地址;

而你的set只是改变了这个对象的值,却不会为该对象重新分配一块内存;

你的recordList.add(record)相当于保存了record对象的引用地址;

所以只要你改变record对象,list中所有元素就都会改变;

解决方法是将HFCZ record = new HFCZ()这一个放在你的循环内,分配多块内存地址就可以了。

list:表, 一览表明细表目录名单。 在计算机领域指序列。在编程语言中List 是类库中的一个类,可以简单视之为双向连结串行,以线性列的方式管理物件集合。list 的特色是在集合的任何位置增加或删除元素都很快,但是不支持随机存取。list 是类库提供的众多容器(container)之一,除此之外还有vector、set、map、?等等。list 以模板方式实现(即泛型),可以处理任意型别的变量,包括使用者自定义的资料型态

首先要知道往List里面添加数据的对象类型,假设为Project类型

这样写

Project myproject = 你要判断的数据

bool listHasMyproject = false

foreach(var item in list.Items)

{

Project proj = (Project)item

if(proj.equals(myProject))//判断是不是等于你的数据,需要重写equals方法,当然你也可以跟据名字判断(如果名字不会重复的话)

{

listHasMyproject = true

}

}

if(listHasMyporject){.......}//List列表中存在你的数据

else{.....}

可能要把对象声明放到循环内:while(rs.next()){

Student stuTemp=new Student()

……

}

如果不行那还有一种可能是你的Student类里几个变量是不是定义成静态的了,也会出现这种问题


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11445287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存