Ich möchte herausfinden, ob eine Zeichenfolge, die getrennt Komma enthält nur die gleichen Werte:Wie finde ich Duplikate in einer Zeichenfolge?
test,asd,123,test
test,test,test
Hier ist die zweite Zeichenfolge enthält nur das Wort „Test“. Ich möchte diese Zeichenfolgen identifizieren.
Da ich über 100 GB iterieren möchte, spielt die Leistung eine große Rolle.
Welches ist der schnellste Weg, um ein boolean
Ergebnis zu bestimmen, wenn die Zeichenfolge wiederholt nur einen Wert enthält?
public static boolean stringHasOneValue(String string) {
String value = null;
for (split : string.split(",")) {
if (value == null) {
value = split;
} else {
if (!value.equals(split)) return false;
}
}
return true;
}
Die 'split' wird ist ein wesentlicher Engpass aufgrund Speicherzuordnungen am Ende, wenn Sie Ihre Eingabe mit 100 GB ist (besonders ab JRE7). Bleibe besser bei 'indexOf'. Vielleicht möchten Sie nicht einmal 'String's verwenden, sondern stattdessen den Eingangsstrom oder den zugeordneten Speicher über NIO verwenden. –
Ist es möglich, dass diese Einträge nicht in den Speicher passen? Könnte es zum Beispiel zwei Werte geben, jeweils 50 Gigs? –