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 が正解である。 |
匿名様 ご投稿
メニューへ戻る