平成18年 秋期 基本情報技術者 午後 問08
問08 Java次の Java プログラムの説明及びプログラムを読んで,設問に答えよ。 ( Java プログラムで使用する API の説明は,この冊子の末尾を参照してください。)
〔プログラムの説明〕 クラス UniqueMap は,キーと値を1対1に対応付けて保持する。 例えば,乗物の乗客(キー)と座席(値)との間に着席という関連があるとき, 一つの座席には多くても1人の乗客だけが座り,1人の乗客は一つの席にしか座らない。 クラス UniqueMap はこのような2種類のオブジェクトを,一方をキー, 他方を値として1対1に対応させるクラスであり,次のメソッドをもつ。 public V put(K key, V value) キー( key )と値( value )を1対1に対応付けて登録する。 key 又 は valueが null ならば,NullPointerException を投げる。 また,value が既にほかのキーと対応付けられていれば,IllegalArgumentException を投げる。 key が既にほかの値と対応付けられていれば,その値を value で置き換え, 置き換えられる前の値を返す。 key に値が対応付けられていなければ,null を返す。 public V get(K key) キー( key )に対応付けられた値を返す。key と値の対応付けがなければ, null を返す。 public V remove(K key) キー( key )と値の対応付けを削除し,対応付けられていた値を返す。 key と値の対応付けがなければ,null を返す。 public void putForce(K key, V value) キー( key )と値( value )を1対1に対応付けて登録する。 value が既にほかのキーと対応付けられていれば,その対応を削除したうえで登録する。 戻り値はない。その他の仕様は,メソッド put と同一である。
〔プログラム〕 import java.util.Map; import java.util.HashMap; public class UniqueMap<K, V> { // K はキーのクラス,V は値のクラス。 // キーと値を対応させて記憶する。 private Map<K, V> map = new HashMap<K, V>(); // 値からキーを取り出せるようにする。 private Map<V, K> reverse = new HashMap<V, K>(); public V put(K key, V value) { if () throw new NullPointerException(); if (reverse.containsKey(value)) throw new IllegalArgumentException(); reverse.remove(map.get(key)); reverse.put(); return map.put(key, value); } public V get(K key) { return map.get(key); } public V remove(K key) { V value = map.remove(key); reverse.remove(value); return value; } public void putForce(K key, V value) { // value がほかのキーと対応付けられていれば,その対応付けを削除する。 // value に対応するキーの存在の有無をチェックする必要はない。 map.remove(); (key, value); } } 設問 プログラム中の に入れる正しい答えを, 解答群の中から選べ。
a に関する解答群 ア key == null || value == null イ key == null && value == null ウ key != null || value != null エ key != null && value != null b に関する解答群 ア key, key イ key, value ウ value, key エ value, value c に関する解答群 ア key イ reverse.get(value) ウ reverse.put(value, key) エ reverse.remove(value) d に関する解答群 ア map.put イ put ウ putForce エ reverse.put
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2024 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
|