Я новичок в Vaadin и Java, и я имею дело проблема ниже:ArrayList вставляя несколько элементов
В следующем коде, я хочу добавить несколько элементов в ArrayList «NewList». Как вы можете видеть, элементы с именем «ps» имеют 5 подэлементов.
Проблема в том, что текущий элемент (в цикле), добавленный в ArrayList, заменяет все предыдущие в каждом индексе, и в результате в конце он возвращает только последний элемент «ps», так как многие по мере возникновения цикла.
Как я могу хранить каждый элемент "PS" в различных индексов?
И код:
Collection<?> itemIds = table.getItemIds();
Item item = null;
PS_SECTION ps = new PS_SECTION();
List<PS_SECTION> newlist = new ArrayList<PS_SECTION>();
int i = 0;
for(Object itemId : itemIds){
item = table.getItem(itemId);// row
Long s1 = (Long) item.getItemProperty("ID").getValue();
String s2 = item.getItemProperty("ΕΝΟΤΗΤΑ").getValue().toString();
Long s3 = (Long) item.getItemProperty("ΔΙΑΤΑΞΗ").getValue();
Long s4 = 0L;
Long s5 = 0L;
ps.setPS_SECTION(s1);
ps.setNAME(s2);
ps.setVORDER(s3);
ps.setISACTIVE(s4);
ps.setISGLOBAL(s5);
newlist.add(ps);
i++
}
положить 'PS_SECTION ps = новый PS_SECTION();' внутри цикла for. Также ... вы не должны указывать имена классов в Uppercase. «PsSection» будет соответствовать соглашениям об именах java. –
Чтобы объяснить, что сказал _911DidBush_, вам нужно создать новый экземпляр 'PS_SECTION' в вашем цикле, здесь вы обновляете один и тот же экземпляр' ps' и добавляете его снова и снова – AxelH
спасибо! это помогло! – natso