mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-08-20 08:24:16 +00:00
fix FastTreeMap hash <0 and comfortableCapacity size optimize
This commit is contained in:
@@ -93,6 +93,9 @@ public class FastTreeMapIntLong {
|
||||
|
||||
var size = keys.length;
|
||||
// 目标数小于或等于数组的第一个元素
|
||||
if(key < 0){
|
||||
key = Math.abs(key);
|
||||
}
|
||||
if (key <= keys[0]) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.zfoo.protocol.model.Pair;
|
||||
import com.zfoo.protocol.util.AssertionUtils;
|
||||
import com.zfoo.protocol.util.IOUtils;
|
||||
import com.zfoo.protocol.util.StringUtils;
|
||||
import io.netty.util.internal.MathUtil;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
@@ -115,9 +116,10 @@ public abstract class CollectionUtils {
|
||||
* CN: 计算HashMap初始化合适的大小,为了安全必须给初始化的集合一个最大上限,防止反序列化一个不合法的包导致内存突然升高
|
||||
*/
|
||||
public static int comfortableCapacity(int capacity) {
|
||||
return capacity < 16
|
||||
return MathUtil.safeFindNextPositivePowerOfTwo(capacity);
|
||||
/* return capacity < 16
|
||||
? (capacity < 8 ? 16 : 32)
|
||||
: (capacity < 32 ? 64 : Math.min(capacity << 1, IOUtils.BYTES_PER_MB));
|
||||
: (capacity < 32 ? 64 : Math.min(capacity << 1, IOUtils.BYTES_PER_MB));*/
|
||||
}
|
||||
|
||||
public static int capacity(int expectedSize) {
|
||||
|
||||
Reference in New Issue
Block a user