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%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.
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.