当我将实体对象添加到我的ArrayList(这里称为实体)时,存在问题。每个实体对象都有一个长ID,int x位置和y位置当添加对象时,Java ArrayList大小变得很大
首先我检查列表是否为空,它应该在开始位置。如果我添加第二个实体对象,我检查对象的ID是否存在,如果是,则更新实体对象的位置。如果该对象不存在,则应该添加该对象。
我的问题是,ArrayList的大小变得巨大,我不知道如何解决它。
以下所有代码都位于持续运行的update()方法中。
/**
* Method that checks if the entity exist or not.
* @param ent - The Entity that should be updated or added.
*/
public void checkEntity(Entity ent){
if(entities.isEmpty()){
entities.add(ent);
}
else{
for(ListIterator<Entity> li = entities.listIterator(); li.hasNext();){
Entity next = li.next();
if(next.getID() == ent.getID()){
// System.out.println("id: " + next.getID() + " xPos: " + next.getXPos() + " yPos: " + next.getYPos() + " type: " + next.getType());
next.setXPos(xPos);
next.setYPos(yPos);
}
else{
li.add(ent);
}
System.out.println(entities.size());
}
}
定义“巨大”。 –
大约20000+,当它应该是2的大小。 –
只要与迭代器中的项目不匹配,您的循环就会添加该项目。只有当* no *项与迭代器中的项匹配时才想添加项。 – Eric