: Ich bin in Vaadin und Java und ich zu tun habe das Problem unter:Arraylist Einfügen mehrerer Elemente
Im folgenden Code, ich möchte mehrere Elemente in der Arraylist „newlist“ hinzuzufügen. Wie Sie sehen können, haben die Elemente mit dem Namen "ps" 5 Unterelemente.
Das Problem ist, dass das aktuelle (in der Schleife) Element, das in der ArrayList hinzugefügt wird, alle vorherigen in jedem Index ersetzt und als Ergebnis am Ende nur das letzte "ps" -Element zurückgibt, so viele Zeiten wie die Schleife aufgetreten ist.
Wie kann ich speichern jedes "ps" Element in den verschiedenen Indizes?
Und der Code:
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++
}
Setzen Sie 'PS_SECTION ps = new PS_SECTION();' in Ihre for-Schleife. Außerdem sollten Sie Klassennamen nicht vollständig in Großbuchstaben eingeben. "PsSection" würde den Java-Namenskonventionen entsprechen. –
Um zu erklären, was _911DidBush_ sagte, müssen Sie eine neue Instanz von 'PS_SECTION' in Ihrer Schleife erstellen, hier aktualisieren Sie die gleiche Instanz' ps' und fügen sie immer wieder hinzu – AxelH
danke! das hat geholfen! – natso