Ja, das ist im Moment bei allen RSS-Posts so. Ist schon spät, aber wenn es bis morgen sonst niemand gemacht hat ( ) kümmer’ ich mich drum und räum’ das auf. (Sind auch ein paar doppelte dabei)
Das „Problem“ ist doch idR, dass man das erste/letzte Element anders behandeln will und dass wiederum liegt idR daran, dass man einen String concatenieren will, wo es dann blöd ist, wenn der gewählte Separator vorn oder hinten zuviel dran steht.
Ich löse das dann so:StringBuilder whereClause = new StringBuilder(); String separator = " WHERE "; Collection<Filter> filter = getFilters(); for(Filter filter : filters){ whereClause.append(separator); whereClause.append(filter.getCompare()); separator = " AND "; } return whereClause.toString();Die ab dem 2. Durchlauf „überflüssige“ Referenzzuweisungen in der Schleife dürfte letztlich immer noch performanter sein, als ein if auf den Index an der selben Stelle.(ACHTUNG!!!, wilde Spekulation!!!)
Wenn man wirklich den Index des aktuellen Elements für etwas benötigt, was mir gerade nicht einfällt, dann würde ich das so machen:List<Filter> filters = new ArrayList<>(getFilters()); for(Filter filter : filters) System.out.println( String.format("index von %s ist %d", filter.getAttrinute(), filters.indexOf(filter)));Das ist aus Performanz-Sicht sicherlich fragwürdig, aber wenn man eine Größenordnung erreicht, bei der das zum Problem wird ist Java wahrscheinlich sowieso die falsche Programmiersprache…
Du hast damit Recht. Allerdings wurden die von einer automatischen Funktion erzeugt. Im Original-Eintrag sollte alles passen.
Ich weiß erst mal nicht, wo ich ansetzen soll, aber vielleicht hat @EagleEye eine Idee.