我在Vaadin和Java新我處理以下問題:ArrayList中插入多個元素
在下面的代碼,我想在ArrayList的「newlist」添加多個元素。如您所見,名爲「ps」的元素有5個子元素。
問題是在ArrayList中添加的當前(in-the-loop)元素正在替換每個索引中的所有前面的元素,因此最終它只返回最後一個「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++
}
put'PS_SECTION ps = new PS_SECTION();'在for循環中。另外...你不應該完全用大寫給類名。 「PsSection」將符合java命名約定。 –
爲了解釋_911DidBush_說的是什麼,你需要在你的循環中創建一個'PS_SECTION'的新實例,在這裏你正在更新同一個實例'ps'並且一次又一次地添加它 – AxelH
謝謝!這有幫助! – natso