【问题标题】:what's the static inner class Entry in HashTable used for? [duplicate]HashTable 中的静态内部类 Entry 是做什么用的? [复制]
【发布时间】:2012-05-30 20:11:40
【问题描述】:

可能重复:
Static nested class in Java, why?

我正在阅读JDK HashTable中的源代码,并且有一些代码sn-p如下:

/** Hashtable 冲突列表。 */

private static class Entry<K,V> implements Map.Entry<K,V> {
    int hash;
    K key;
    V value;
    Entry<K,V> next;
    ...
} //end of Entry<K,V>

我知道这里的Entry是一个私有内部类,但它也是一个定义好的静态类; 我担心的是,仅仅将其定义为私有内部类还不够吗?这里将其定义为静态类的主要用途是什么?

非常感谢任何指导或回复。

【问题讨论】:

  • 如果你尝试迭代Map.entrySet,你就会知道。

标签: java static hashtable


【解决方案1】:

它是static,因此它的实例不包含对外部类的包含实例的引用。

Map.Entry 用于遍历地图的元素。它不需要对包含映射的引用,因为它不需要访问映射的私有字段。因此,将其声明为非静态只会占用额外的空间并削弱封装。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-25
    • 2016-08-20
    • 2012-05-26
    • 2013-09-15
    • 2013-10-04
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多