Ist es effizienter, Zeichenkette in Int oder Int in Zeichenkette zu konvertieren, wenn Sie auf Gleichheit prüfen?

8

Nach dem Setup:

%Vor%

Beide Variablen repräsentieren IDs, die semantisch gleich sind. Da die Anwendung für das mobile Gerät ist, ist es sehr wichtig, dass der Vergleich dieser Variablen so effizient wie möglich erfolgt.

Ist es effizient, diese Variablen mit diesem Snippet zu vergleichen,

? %Vor%

oder mit diesem?

%Vor%     
maksuti 16.08.2013, 16:56
quelle

3 Antworten

4

Es wird wahrscheinlich nichts ausmachen, wenn Sie diesen Vergleich nicht viele tausend Male machen. Das heißt, wenn Sie sich ansehen, was jede dieser Aussagen macht:

boolean areEqual = Integer.parseInt(b) == a; Diese Anweisung analysiert den String -Wert einmal und führt dann einen extrem schnellen Vergleich von zwei primitiven int -Werten durch.

boolean areEqual = String.valueOf(a).equals(b); Diese Anweisung verarbeitet einmal String , um den String -Wert von a zu erstellen, und führt dann einen String -Vergleich durch. Mehr Schritte, mehr interne Logik, daher weniger effizient.

    
StormeHawke 16.08.2013, 17:02
quelle
1

Die höchste Ineffizienz Ihres Codes besteht wahrscheinlich darin, dass Sie bei jedem einzelnen Vergleich zwischen int und String konvertieren. Führen Sie einfach die Umwandlung von String nach rechts aus, wenn Sie die Daten an erster Stelle erhalten. Auf diese Weise stellen Sie auch sicher, dass jede Fehlermeldung Ihren Benutzer sofort erreicht, z. wenn er / sie die Eingabe falsch eingegeben hat.

    
jboi 16.08.2013 18:27
quelle
1

Wenn Sie wissen, dass die Zeichenfolge eine Ziffer enthält, ist der effizienteste Weg wahrscheinlich;

%Vor%     
assylias 16.08.2013 20:37
quelle

Tags und Links