Ich habe ein Problem, ich muss eine for-Schleife einchecken, wenn ein Objekt bereits in der Arraylist existiert. Wenn das Objekt nicht existiert, muss ich eins erstellen/eins hinzufügen. Allerdings kann ich keine Möglichkeit finden, dies zu überprüfen, da er immer nur den ersten Index prüft und dann herunterfährt, oder er wird den ersten Index überprüfen und die Objekte werden nicht übereinstimmen, daher erstelle ich 3 doppelte Objekte, bevor die Schleife erkennt, dass es einen gibt dupliziere es zu spät. Hier ist der Code:Java-Schleife, um Objekt in Arraylist zu finden, kann nicht über Index [0]
Ich hoffe wirklich, Sie Jungs können mir helfen, kann einfach nicht die Lösung bekommen.
Klas klas = informatieSysteem.getKlasVanStudent(student); // klascode van de student opzoeken
for (Les l : informatieSysteem.deLessen) {
if (l.getKlas().getKlasCode().contains(klas.getKlasCode()) && l.getStartTijdString().contains(begintijd) && l.getEindTijdString().contains(eindtijd) && l.getDateString().contains(datum) && l.getKlas().getStudentenKlas().contains(student)) {
System.out.println(l);
les = l;
}
}
if (student.getAbsentie().size() == 0) {
student.addabsentie(datum, begintijd, eindtijd, les, student);
} else {
for (int i = 0; i < student.getAbsentie().size(); i++) {//anders controle of dit object voorkomt in lijst.
Absentie ab = student.getAbsentie().get(i);
System.out.println(student.getAbsentie().size());
if(student.getAbsentie().listIterator().next().getLes().equals(les)){
//if ((ab.getLes().getDateString().equals(les.getDateString()))&& (ab.getLes().getStartTijdString().equals(les.getStartTijdString()))&&ab.getLes().getEindTijdString().equals(les.getEindTijdString())) {
System.out.println("niet else");
}else{
student.addabsentie(datum, begintijd, eindtijd, les, student);
break;
}
}
}
JsonArrayBuilder jab = Json.createArrayBuilder();
for(Absentie ab: student.getAbsentie()) {
// Uiteindelijk gaat er een array...
jab.add(ab.getLes().getDateString());
}
conversation.sendJSONMessage(jab.build().toString()); // terug naar de Polymer-GUI!
}
Sie könnten ein 'Set' anstelle von' ArrayList' verwenden. Dann müssen Sie nicht prüfen, ob das Objekt existiert oder nicht, es wird niemals Duplikate geben. https://docs.oracle.com/javase/7/docs/api/java/util/Set.html – Atri
Verwenden Sie 'für (Absentie ab: student.getAbsentie())' Ich bekomme nicht, was der ListIterator macht im Code. Es ist irgendwie schwer zu lesen. Vielleicht solltest du es zuerst umgestalten und aufräumen. –
ist die Variable 'les' in' equals (les) 'gesetzt? Woher? –