我最初写了一个ArrayList并存储了唯一值(用户名,即Strings).我后来需要使用它ArrayList来搜索用户是否存在.这是O(n)为了搜索.
我的技术负责人希望我将其更改为a HashMap并将用户名存储为数组中的键,并将值存储为空Strings.
所以,在Java中 -
hashmap.put("johndoe","");
Run Code Online (Sandbox Code Playgroud)
我可以通过运行来查看此用户是否存在 -
hashmap.containsKey("johndoe");
Run Code Online (Sandbox Code Playgroud)
这是O(1)对的?
我的主管说这是一种更有效的方法来实现这一点,这对我来说很有意义,但是将hash/empty作为值放在hashmap中并将其中的元素作为键存放似乎有点过时了.
我的问题是,这是一个好方法吗?效率节拍ArrayList#contains或一般的阵列搜索.有用.我担心的是,我没有看到其他人在搜索后这样做.我可能在某个地方错过了一个明显的问题,但我看不到它.
我正在寻找替代cookie的方法,我在这里读到了关于HTML5网络存储的内容,我在这里阅读了一个更简单的解释,但我仍然没有完全了解它是如何工作的.有人可以提供一些稍微非技术性的解释,以便我可以理解技术方面的内容.它说关于浏览器必须存储键值对,但存储的位置和方式以及为什么其他站点无法访问?为什么它不被视为另一种形式的cookie?
我正在寻找一种全面而完整的cookie替代品; 如果我的组织想要将其所有网站替换为使用cookie来代替网络存储,那么我们可以轻松地对该要求说"是"吗?我们假设只使用了最新的浏览器.
与Cookie相比,网络存储如何以及以何种方式增强安全性?它是否有可能以其他方式危及安全性?有没有任何真实生活经历可以分享利弊的人?