pafuイーランスクール 学んでできる

メニューへ戻る

Java 基礎問題1 平成18年度秋期問8 解説

問題の確認

解説
a:
aはUniqueMap.putメソッドでNullPointerExceptionをスローする条件である。
問題文のputメソッドの説明より、
>key又はvalueがnullならば,NullPointerExceptionを投げる。
とあるので、選択肢の中から
>ア key==null || value==null
が正解である。

b:
bはreverse.putメソッドの引数を指定する部分である。
putメソッド内の処理をみると、
>//
>private Map<K, V> map = new HashMap<K, V>();
>//
>private Map<V, K> map = new HashMap<V, K>();
>...
>
> reverse.remove(map.get(key));
> reverse.put([b]);
> return map.put(key, value);
値(value)をキー、キー(key)を値として持つMap reverse
(mapとはkeyとvalueとが入れ替わったものであるため「reverse」)
にputメソッドで値を設定する処理であるので、
>ウ value, key
が正解である。

c:
cは「valueとほかのキーが対応付けられていれば,その対応付けを削除する。」
部分でremoveメソッドの引数を指定している。
>map.remove([c]);
「valueとほかのキーの対応付け」としては、mapとreverseの2つに
対応付けが持たれているので、mapとreverseにそれぞれremoveを行って
対応付けを削除する必要がある。
>エ reverse.remove(value)
とすれば、mapに対するremoveとreverseに対するremoveが行われる。
※巻末のAPIリファレンスでHashMap.removeメソッドの仕様を確認すると
 reverse.removeメソッドの戻り値は、removeメソッドに指定したキー(V)に対応する値(K)となり
 map.removeメソッドの引数の型として問題ない。

d:
cの処理で「valueとほかのキーが対応付けられていれば,その対応付けを削除する。」
を行った後であるので、putForceメソッドでは後は引数に指定された値を
map、reverseに設定すればよい。1行で値の設定を行うためには、
UniqueMap.putメソッドを使用する必要があるので、
>イ put
が正解である。

匿名様 ご投稿

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる