Skip to content

Commit 3108285

Browse files
committed
Fix performance issue #37.
1 parent fa7869a commit 3108285

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

src/main/java/org/hashids/Hashids.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -353,19 +353,18 @@ private static String consistentShuffle(String alphabet, String salt) {
353353
return alphabet;
354354

355355
int asc_val, j;
356-
char tmp;
357-
for (int i = alphabet.length() - 1, v = 0, p = 0; i > 0; i--, v++) {
356+
char[] tmp_arr = alphabet.toCharArray();
357+
for (int i = tmp_arr.length - 1, v = 0, p = 0; i > 0; i--, v++) {
358358
v %= salt.length();
359359
asc_val = (int) salt.charAt(v);
360360
p += asc_val;
361361
j = (asc_val + v + p) % i;
362-
363-
tmp = alphabet.charAt(j);
364-
alphabet = alphabet.substring(0, j) + alphabet.charAt(i) + alphabet.substring(j + 1);
365-
alphabet = alphabet.substring(0, i) + tmp + alphabet.substring(i + 1);
362+
char tmp = tmp_arr[j];
363+
tmp_arr[j] = tmp_arr[i];
364+
tmp_arr[i] = tmp;
366365
}
367366

368-
return alphabet;
367+
return new String(tmp_arr);
369368
}
370369

371370
private static String hash(long input, String alphabet) {

0 commit comments

Comments
 (0)