あなたは "要素が存在しないexcepton" を投げることができますが、例外は高価であり、 "例外的な状況" のために確保されなければなりません。地図に表示されていない値はほとんどありませんので、スピードバンプかもしれませんが、いつものように、現在の状況によって異なります。
いずれにしても、アドバイスとして、 (key)メソッドを含んでいます。キーがnull値にマッピングされているということは常にposiblityなので、get(key)はマップにあってもnullを返します。
編集:ここでは完全にテストされていないと、現在の時刻が1時08分AMである、と私はひどい風邪をひいている!!:
のget()のソースコードを見た後、私は記録のために(何かを思い付きました)
314 public V get(Object key) {
315 if (key == null)
316 return getForNullKey();
317 int hash = hash(key.hashCode());
318 for (Entry<K,V> e = table[indexFor(hash, table.length)];
319 e != null;
320 e = e.next) {
321 Object k;
322 if (e.hash == hash && ((k = e.key) == key || key.equals(k)))
323 return e.value;
324 }
//This could be instanced by reflection (bad idea?)
325 return new MappeableElementImpl();
}
あなたがそのようないくつかのMappeableElementとしてインターフェイスまたはメソッドブールisUnmappedValueを(持っていたようなもの)を実装するためにVを強制することができ、私は、get()メソッドは、そのインターフェイスのインスタンスを返すことができます。
Element e = map.get(notpresentkey);
if (e.isUnmappedValue()){sysout (notpresentkey +" is not present");}
出典
2009-07-02 03:58:30
Tom
@Sanoj awですが、私は常に宇宙飛行士になりたがっています – Pyrolistical