fragen sich, was die eleganteste Art und Weise ist folgendes zu erreichen:Wie ein Element in einer Liste nach jeder x-te Element hinzufügen in Java
„ein Element hinzufügen nach jeder x-te Element in einer Liste“.
Ich habe diese, die funktioniert, aber sieht sehr hässlich zu mir:
ListIterator<Something> it = items.listIterator();
int i = 0;
int breakPoint = 3;
while(it.hasNext()) {
it.next();
i++;
if(i == breakPoint) {
it.add(new Something()....);
i = 0;
}
}
Ich würde es vorziehen, dies zu tun, ohne externe Bibliotheken und so weiter. Irgendwelche eleganteren Weisen, die auch lesbar sind und sich nicht auf Tricks verlassen?
Sie können die Logik vereinfachen, indem Sie '%' ... 'if (i% 3 == 0) ... add() ... i ++' verwenden. Dann brauchen Sie die breakPoint-Variable nicht. – hamena314
Ich wäre mehr besorgt über die Effizienz als die Eleganz an sich. Ich weiß, dass Sie sich darauf konzentrieren sollten, lesbaren Code zu schreiben, aber es ist alles zu einfach, merkwürdig langsamen Code zu schreiben, wenn Sie so etwas tun. Wenn Sie nicht mit einer verknüpften Liste zu tun haben, wird das Hinzufügen in der Mitte der Liste ein Mörder sein. Mein Ansatz wäre, am Ende der Liste leeren Platz für die zusätzlichen Elemente zuzuweisen und dann die Elemente zu mischen. –