What's the data structure in Java that has the fastest operation for contains() ?
e.g. i have a set of numbers { 1, 7, 12, 14, 20... }
Given another arbitrary number x, what's the fastest way (on average) to generate the boolean value of whether x is contained in the set or not? The probability for !contains() is about 5x higher.
Do all the map structures provide o(1) operation? Is HashSet the fastest way to go?
解决方案
look at set (Hashset, enumset) and hash (HashMap,linkedhash...,idnetityhash..) based implementations. they have O(1) for contains()
This cheatsheet is of great help.