将数据存储为具有空/空值的HashMap中的键是一个好主意吗?
我最初写了一个并存储了唯一值(用户名,即)。我后来需要使用 来搜索其中是否存在用户。这是为了搜索。ArrayList
Strings
ArrayList
O(n)
我的技术主管希望我将其更改为 a,并将用户名作为键存储在数组中,值存储为空。HashMap
Strings
所以,在Java中 -
hashmap.put("johndoe","");
我可以通过运行 - 查看此用户以后是否存在 -
hashmap.containsKey("johndoe");
这是对的吗?O(1)
我的领导说这是一种更有效的方法,这对我来说是有道理的,但是将null/empty作为哈希图中的值并存储其中的元素作为键似乎有点不对劲。
我的问题是,这是一个好方法吗?效率高于或数组搜索一般。它的工作原理。我担心的是,在搜索后,我还没有看到其他人这样做。我可能在某个地方错过了一个明显的问题,但我看不到它。ArrayList#contains