【发布时间】:2016-08-15 10:37:05
【问题描述】:
LinkedHashMap 扩展 HashMap。 LinkedHashMap.java 代码中不存在方法 put()。所以我认为如果我可以在下面的程序中调用put()方法,那么它一定是继承自HashMap的put()方法。
import java.util.*;
class First
{
public static void main(String[] args)
{
LinkedHashMap<Key, String> h=new LinkedHashMap<>(7);
h.put(new Key(3), "Hi");
h.put(new Key(1), "Hello");
h.put(new Key(9), "hru");
System.out.println(h);
}
}
Key.java 是:
class Key
{
int i = 0;
Key(int i)
{
this.i=i;
}
public int hashCode()
{
return i;
}
public String toString()
{
return i+"";
}
}
它必须维护'after'和'before'引用以保留插入顺序:http://a.disquscdn.com/uploads/mediaembed/images/3751/7481/original.jpg
但是HashMap 中的put() 方法不知道这些变量。那么如何调用put()维护这些变量呢?
我在HashMap 或LinkedHashMap 代码中也找不到createEntry() 方法。
我正在使用:
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
【问题讨论】:
标签: java collections linkedhashmap