gpt4 book ai didi

java - 数组列表为所有元素打印相同的数据

转载 作者:行者123 更新时间:2023-11-29 09:09:09 25 4
gpt4 key购买 nike

我正在尝试打印获取并存储在对象中的数据集。该对象使用数组列表。在获取数据时(就在将其添加到数组列表之前),所有记录都打印不同,但是当我打印它们时,它们是相同的。我不知道为什么。

这是代码

void caseClicked()

{
//println("Inside case clicked");

for(int i = 0; i < mapData.size(); i++)
{
if (dist(mapData.get(i).pf.x, mapData.get(i).pf.y, gX, gY) < percentY(1))
{
clickedCaseId = mapData.get(i).icaseNum;
clickedStateId = mapData.get(i).stateId;
glyphPosX = mapData.get(i).pf.x;
glyphPosY = mapData.get(i).pf.y;
print("Value of icaseNum selected" + mapData.get(i).icaseNum + "\n");
break;
}
else
continue;
}

try{
db.getConnection();
if (db.conn.connect())
{
String tempQ = "select distinct(svin), vfatcount, saccdate, day " + d_year + " where icasenum = " + clickedCaseId + " and istatenum = " + clickedStateId;
println(tempQ);
db.conn.query(tempQ);
Glyph tg1 = new Glyph();
gl.fnVins.clear();
while (db.conn.next())
{
tg1.fVin.VIN = db.conn.getString(1);
tg1.fVin.fatals = (int)Float.parseFloat(db.conn.getString(2));
println("Value of VIN is " + tg1.fVin.VIN + "\n");
println("Value of fatals is " + tg1.fVin.fatals + "\n");

gl.fnVins.add(tg1.fVin);
gl.gdate = db.conn.getString(3);
gl.gday = db.conn.getString(4);
}

for (int i = 0; i < gl.fnVins.size(); i++)
println("Value of VIN is " + gl.fnVins.get(i).VIN + "\n");

}
}
catch (Exception e)
{
System.err.println ("Error:DBHelper.dataPointQuery - " + e.toString());
// return null;
}
db.closeConnection();


}

字形类是

public class Glyph
{
float caseNum = 0;
float stateId = 0;
float time = 0;
int fatal = 0;
String gday = "", gdate = "";

class fnVin
{
int fatals = 0;
String VIN = "";
}

fnVin fVin = new fnVin();
ArrayList<fnVin> fnVins = new ArrayList<fnVin>();

}

有人可以帮我弄清楚这个实现中有什么问题吗?提前致谢。

最佳答案

问题是:在将它添加到 while 循环中的 gl.fnVins 之前,您没有创建新的 tg1.fVin 实例。

gl.fnVins.add(tg1.fVin);

要解决此问题,您必须在 while 循环中添加到数组之前创建新的 fnVin 实例。

while (db.conn.next()) {
fVin fv = new fVin();
fv.VIN = db.conn.getString(1);
fv.fatals = (int)Float.parseFloat(db.conn.getString(2));

gl.fnVins.add(fv);
}

关于java - 数组列表为所有元素打印相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13281304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com