1、LinkedHashSet具有可预知迭代顺序的Set接口的哈希表和链接列表实现。此实现与HashSet的不同之外在于,后者维护着一个运行于所有条目的双重链接列表。
2、LinkedHashSet源码一部分
public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneable, Serializable
3、当父类实现了某一接口,子类还需不需显式地写出也实现这一接口
LinkedHashSet已继承了HashSet,即是HashSet的子类,而HashSet实现了Set接口, 那么子类LinkedHashSet还需不需要再写实现Set接口呢?
4、综上就有了以下的思考或验证
a、只要父类实现了某个接口, 子类可以不再显式地写,JVM不会报错,这个已验证。
b、Java标准库里这样写是由于生成JavaDoc文档的考虑,因为javadoc命令为了收集继承信息肯定得要迭代遍历了,而且为了收集接口实现信息若遍历的话,运算量相当地大,于是Sun就偷懒了?还是Sun错了,不得而知。
c、为了提高代码的可读性,如果是的话,可想而知Sun是多么注重代码的可读性。
2、LinkedHashSet源码一部分
public class LinkedHashSet<E>extends HashSet<E>implements Set<E>, Cloneable, Serializable
3、当父类实现了某一接口,子类还需不需显式地写出也实现这一接口
LinkedHashSet已继承了HashSet,即是HashSet的子类,而HashSet实现了Set接口, 那么子类LinkedHashSet还需不需要再写实现Set接口呢?
4、综上就有了以下的思考或验证
a、只要父类实现了某个接口, 子类可以不再显式地写,JVM不会报错,这个已验证。
b、Java标准库里这样写是由于生成JavaDoc文档的考虑,因为javadoc命令为了收集继承信息肯定得要迭代遍历了,而且为了收集接口实现信息若遍历的话,运算量相当地大,于是Sun就偷懒了?还是Sun错了,不得而知。
c、为了提高代码的可读性,如果是的话,可想而知Sun是多么注重代码的可读性。