天天看点

java集合类——LinkedHashSet类

对这个类,到现在还是从来没用过,不过要知道这个的LinkedHashSet类的优点是必须的,至少以后用到的时候,能有个可选的余地,有个解决方案。

LinkedHashSet具有保序性。什么意思呢?

就是说,比如从数据库里取出数据,用HashSet保存,结果发现顺序却是乱的,这是LinkedHashSet就能派上用场了哦。

其实在HashSet的构造方法中有一个是这样的:

HashSet(int initialCapacity, float loadFactor, boolean dummy) {
      map = new LinkedHashMap<E,Object>(initialCapacity, loadFactor);
}
           

但这个构造方法没有任何权限控制符,说明只能在同一包中进行调用。而我们平时进行new的时候的HashSet都是public的,在构造方法中,属性Map的值都是HashMap的实例,所以HashSet就没有Linked*的保持排序的功能了。