HashMap里的keySet()方法原码看不懂,请解释一下。谢谢。 public Set<K> keySet() { Set<K> ks = keySet; //这个keySet是什么? 没有定义啊? return (ks != null ? ks : (keySet = new KeySet())); }keySet 与方法名相同,在整个HashMap里别处没有定义。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 父类AbstractMappublic Set<K> keySet() { if (keySet == null) { keySet = new AbstractSet<K>() { public Iterator<K> iterator() { return new Iterator<K>() { private Iterator<Entry<K,V>> i = entrySet().iterator(); public boolean hasNext() { return i.hasNext(); } public K next() { return i.next().getKey(); } public void remove() { i.remove(); } }; } public int size() { return AbstractMap.this.size(); } public boolean contains(Object k) { return AbstractMap.this.containsKey(k); } }; } return keySet; } 如果你用的是eclipse,按下ctrl+变量名,就能索引过去,再说sun不会犯这种错误,否则通不过编译的。 我以为有种特殊的方法,我一直不知道呢. 再发个帖子帮解释下,native方法。 java native 没仔细关注过,应该就是用java调用本地语言,比如c,c++之类的语言写的代码。更体现了java的跨平台性。网上还是有很多相关资料的。 类中的线程 图形图像 画像素点的问题 netbeans && eclipse ,该如何选择? 发2个简单问题,请来看看~~ PreparedStatement.setString()超出该类型最大值 谁有 jfreechart developer guide 一個簡單程式,請大俠相助 这样一种软件,大家评价一下,有市场价值吗? ■■提供重量级源代码,关注者请看看■■ 子接口能否覆盖父接口中的参数不同的同名方法? 键盘事件监视器KeyListener 不可以注册给 JFrame或者其隐含的容器,或者其中的JPane吗? js调用java
public Set<K> keySet() {
if (keySet == null) {
keySet = new AbstractSet<K>() {
public Iterator<K> iterator() {
return new Iterator<K>() {
private Iterator<Entry<K,V>> i = entrySet().iterator(); public boolean hasNext() {
return i.hasNext();
} public K next() {
return i.next().getKey();
} public void remove() {
i.remove();
}
};
} public int size() {
return AbstractMap.this.size();
} public boolean contains(Object k) {
return AbstractMap.this.containsKey(k);
}
};
}
return keySet;
}