I want to store around 5 million unique strings in Java hash map. Key and value will be the same string. String maximum length will be 15 characters (ASCII).Later I want to lookup whether a particular string exists in the hash map.
Do i need to worry about the memory size issue for the above scenario. I am guessing like it wont need more than 75 mb to 150 mb memory.
Thanks in advance.
Key and value will be the same string.
Using a Map
when its keys and values will be the same is redundant. You should use a Set
instead, especially if you only plan to use contains
.
Regarding your concern about space, let's assume that each String
has a length of 15 characters.
Assuming you're using Java 9, Latin 1 characters only require a single byte
, so 5 million unique String
s will require at most 75_000_000
bytes or 75 MB
.
Java 8 and below back their String
s with char[]
, so you'd essentially require twice as much memory in that case.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.