aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/github/technus/tectech/Util.java21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/main/java/com/github/technus/tectech/Util.java b/src/main/java/com/github/technus/tectech/Util.java
index 09aeae6a6b..e8472bfea6 100644
--- a/src/main/java/com/github/technus/tectech/Util.java
+++ b/src/main/java/com/github/technus/tectech/Util.java
@@ -25,8 +25,7 @@ import net.minecraftforge.fluids.FluidStack;
import org.apache.commons.lang3.StringUtils;
import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -40,6 +39,18 @@ public final class Util {
private Util() {
}
+ @SuppressWarnings("ComparatorMethodParameterNotUsed")
+ public static <K, V extends Comparable<? super V>> SortedSet<Map.Entry<K, V>> entriesSortedByValues(Map<K, V> map) {
+ SortedSet<Map.Entry<K, V>> sortedEntries = new TreeSet<Map.Entry<K, V>>(
+ (e1, e2) -> {
+ int res = e1.getValue().compareTo(e2.getValue());
+ return res != 0 ? res : 1; // Special fix to preserve items with equal values
+ }
+ );
+ sortedEntries.addAll(map.entrySet());
+ return sortedEntries;
+ }
+
public static String intBitsToString(int number) {
StringBuilder result = new StringBuilder(16);
@@ -57,7 +68,7 @@ public final class Util {
}
public static String intBitsToShortString(int number) {
- StringBuilder result = new StringBuilder(16);
+ StringBuilder result = new StringBuilder(35);
for (int i = 31; i >= 0; i--) {
int mask = 1 << i;
@@ -73,10 +84,10 @@ public final class Util {
}
public static String longBitsToShortString(long number) {
- StringBuilder result = new StringBuilder(16);
+ StringBuilder result = new StringBuilder(71);
for (int i = 63; i >= 0; i--) {
- int mask = 1 << i;
+ long mask = 1L << i;
result.append((number & mask) != 0 ? ":" : ".");
if (i % 8 == 0) {