DISCLAIMER:
This question was not meant to be argumentative!
What is fastest and less memory draining way of searching a key-value pair? I will be storing items in a key-value like relation and I need to access them quickly. Should I use a SQLite database? A Map? A Hashtable? A HashMap? Please give some advantages/disadvantages of using whatever method of searching.
Any hash-based Map
structure is the way to go as long as your hash function for the key is efficient. You can use value id:s as the result for the lookup to conserve memory during search.
If your data is already in database though, you can leave this search entirely to the RDBMS, after all they're made for this stuff.
If your data is in memory, Map
s in general are your friends - they are meant for this.
Don't use a Hashtable
however. It is much slower than newer Map implementations. because its methods are synchronized, which most of the time is not needed (and when needed, there is a much better alternative - see below).
In single-threaded context, HashMap
is probably going to be OK.
If you need thread safety, use a ConcurrentHashMap
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With