1.HashSet<T>
类,主要被设计用来存储集合,做高性能集运算,例如两个集合求交集、并集、差集等。从名称可以看出,它是基于Hash的,可以简单理解为没有Value的Dictionary。
2.HashSet<T>
不能用索引访问,不能存储重复数据,元素T必须正确实现了Equals
和GetHashCode
。
3.HashSet<T>
的一些特性如下:
(1)HashSet<T>
中的值不能重复且没有顺序。
(2)HashSet<T>
的容量会按需自动添加。
4.优势:
(1)HashSet的优势在与运算快,作为一种存放在内存的数据,可以很快的进行设置和取值的操作。
(2)使用HashSet作为内存存储的快速数据库,这个需要随时跟新HashSet里面的数据,因为在HashSet中一个长时间未被访问的数据,将被系统自动回收掉,那么就会导致失败,那么如何才能保证HashSet里面的值是长存在的而且达到不断的更新里面的值呢?
首先程序过来访问我们HashSet里面有没有需要的数据,如果有我们需要的数据就直接返回给用户,不用调用查询数据库的操作。如果HashSet里面没有我们需要的数据,程序再去查询一次数据库是否有该Query数据,如果有返回给用户同时把查询的结果添加到HashSet里面,这么做可以一定程度的降低查询数据库所带来的不便,但是不能根除,需要进一步提升性能,可以查看前面的缓存策略使用redis来提高网站查询和访问。