From ad845b77a3c0c2716353aa44201051e49541186d Mon Sep 17 00:00:00 2001 From: sun Date: Sat, 25 Mar 2023 10:34:30 +0800 Subject: [PATCH] feat[storage]: support primitive int-object and long-object storage --- .../src/main/java/com/zfoo/storage/model/vo/StorageInt.java | 4 +++- .../main/java/com/zfoo/storage/model/vo/StorageLong.java | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/storage/src/main/java/com/zfoo/storage/model/vo/StorageInt.java b/storage/src/main/java/com/zfoo/storage/model/vo/StorageInt.java index 0212e732..ae347946 100644 --- a/storage/src/main/java/com/zfoo/storage/model/vo/StorageInt.java +++ b/storage/src/main/java/com/zfoo/storage/model/vo/StorageInt.java @@ -27,13 +27,15 @@ public class StorageInt extends Storage { private IntObjectHashMap dataMap = new IntObjectHashMap(); public StorageInt(Storage storage) { + this.dataMap = new IntObjectHashMap(storage.size()); + this.dataMap.putAll((Map) storage.getData()); super.indexMap = storage.indexMap; super.uniqueIndexMap = storage.uniqueIndexMap; super.clazz = storage.clazz; super.idDef = storage.idDef; super.indexDefMap = storage.indexDefMap; super.recycle = storage.recycle; - this.dataMap.putAll((Map) storage.getData()); + storage.recycleStorage(); } @Override diff --git a/storage/src/main/java/com/zfoo/storage/model/vo/StorageLong.java b/storage/src/main/java/com/zfoo/storage/model/vo/StorageLong.java index 94a3554d..351c04d6 100644 --- a/storage/src/main/java/com/zfoo/storage/model/vo/StorageLong.java +++ b/storage/src/main/java/com/zfoo/storage/model/vo/StorageLong.java @@ -26,16 +26,18 @@ import java.util.Map; */ public class StorageLong extends Storage { - private LongObjectHashMap dataMap = new LongObjectHashMap(); + private LongObjectHashMap dataMap; public StorageLong(Storage storage) { + this.dataMap = new LongObjectHashMap(storage.size()); + this.dataMap.putAll((Map) storage.getData()); super.indexMap = storage.indexMap; super.uniqueIndexMap = storage.uniqueIndexMap; super.clazz = storage.clazz; super.idDef = storage.idDef; super.indexDefMap = storage.indexDefMap; super.recycle = storage.recycle; - this.dataMap.putAll((Map) storage.getData()); + storage.recycleStorage(); } @Override