Re: Buffered Reader



traktour7@xxxxxxxxxxxxxx wrote:
while ((line = reader.readLine()) != null) {
int indexFirstObj = line.indexOf("|");
int indexlastTag = line.lastIndexOf("|");

Es sind drei Spalten? Ich spare mir mal die Optimierung über char array oder
CharSequence und bleibe mal bei Strings.

String object = line.substring(0, indexFirstObj);
String tag = line.substring(indexlastTag + 1);

Das ist schon mal gut, die Daten werden nicht kopiert, nur ein
"leichtgewichtiges" Objekt angelegt.

ArrayList<String> strT = (ArrayList) hmTags.get(tag);
if (strT == null) {
ArrayList<String> strT = new ArrayList<String>();
}
strT.add(object);
hmTags.put(tag, strT);

Wenn du strT.length() verwendest kannst du dir occurenceOfTag komplett
sparen, insbesondere das Int casten. Alternativ wäre eine primitive hashmap
verwenden oder ein Holder Object in hmTags das auch ein int hat.

if (!objList.contains(object)) {
objList.add(object);
}

das ist kritisch, das contains bei einer List ist in der Regel langsam.
Brauchst du hier die Reihenfolge? Sonst nimm doch auch ne HM.

vielleicht kann man das noch optimieren, ich bin aber mit der
optimierungsideen am ende :-)))))

Dazu müsste man wissen welche Informationen du im Anschluss wie verarbeiten
willst.

Gruss
Bernd
.