From 0a69285a7e33cbb0d39090269dc7c25a55f47ae9 Mon Sep 17 00:00:00 2001 From: godotg Date: Sat, 21 Oct 2023 11:07:35 +0800 Subject: [PATCH] perf[protocol]: a capacity that is sufficient to keep the map from being resized --- .../com/zfoo/protocol/collection/CollectionUtils.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java b/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java index a51818d0..91cd63e8 100644 --- a/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/collection/CollectionUtils.java @@ -115,6 +115,14 @@ public abstract class CollectionUtils { : (capacity < 32 ? 64 : Math.min(capacity << 1, IOUtils.BYTES_PER_MB)); } + public static int capacity(int expectedSize) { + if (expectedSize < 3) { + return expectedSize + 1; + } + return (int) ((float) expectedSize / 0.75F + 1.0F); + } + + // ----------------------------------归并排序---------------------------------- /**