平成24年 春期 基本情報技術者 午後 問11
問11 Java問11 次の Java プログラムの説明及びプログラムを読んで,設問1,2に答えよ。 ( Java プログラムで使用する API の説明は,この冊子の末尾を参照してください。) 〔プログラムの説明〕 試験の成績を管理するプログラムである。 (1) クラス ScoreManager は,後述するクラス ValueSortedMap を継承したクラ スで,試験の成績を管理する。点数の高い順に学籍番号(英数字で構成される固 定長の文字列)と点数を出力するメソッド print をもつ。 (2) クラス ValueSortedMap は,キーと値の対応付けを値の昇順,又はコンスト ラクタで指定したコンパレータに従った順に保持する。キーと値の対応付けをキ ーの昇順,又はコンパレータに従った順に保持するクラス TreeMap を利用して いる。主なメソッドは次のとおりである。
key に value を対応付けて登録する。key 又は value が null のときは 例外 NullPointerException を投げる。key が既に他の値と対応付けられ ていれば,その値を value で置き換え,置き換えられる前の値を返す。 key に値が対応付けられていなければ,null を返す。 public V get(K key) key に対応付けられた値を返す。key と値の対応付けがなければ,null を返す。 public V remove(K key) key と値の対応付けを削除し,対応付けられていた値を返す。key と値の 対応付けがなければ,null を返す。 public lterator<K> iterator() 対応付けられた値の昇順,又はコンストラタで指定したコンパレータに 従った順に,キーを返すための反復子を返す。 フィールド map は,キーと値の対応付けを保持する。 フィールド reverseMap は,値にキーを対応付けて保持する。異なるキーに 同じ値が対応付けられることがあるので,値に対応付けられるのはキーのリストである。 (3) クラス ScoreManagerTester は,成績管理プログラムのテストプログラムである。 メソッド main の実行結果を,図1に示す。
図1 メソッド main の実行結果 〔プログラム1〕 import java.util.Comparator; public class ScoreManager extends ValueSortedMap< 〔プログラム2〕
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.noSuchElementException;
import java.util.TreeMap;
public class ValueSortedMap<K, V> implements Iterable<K> {
Map<K, V> map = new HashMap<K, V>();
Map<V, List<K>> reverseMap;
public ValueSortedMap() {
reverseMap = new TreeMap<V, List<K>>();
}
public ValueSortedMap(Comparator<? super V> c) {
reverseMap = new TreeMap<V, List<K>>(c);
}
public V put(K key, V value) {
if (
〔プログラム3〕
public class ScoreManagerTester {
public static void main(String[] args) {
ScoreManager sm = new ScoreManager("数学");
try {
sm.put("FE0001", 70);
sm.put("FE0002", 90);
sm.put("FE0003", 85);
sm.put("FE0004", 95);
sm.put("FE0005", 90);
sm.put("FE0001", 85);
sm.remove("FE0004");
sm.put(null, 90)j
sm.put("FE0004", 90);
} catch (NullPointerException e) {}
sm.print();
System.out.println(sm.get("FE0004"));
}
}
設問1 プログラム中の a に関する解答群 ウ String エ String, Integer b に関する解答群 ウ key == null && value == null エ key == null || value == null c に関する解答群 ウ keys == null エ keys.isEmpty() d,e に関する解答群 ウ Map.rcmove エ map.remove オ remove カ reverseMap.get キ reverseMap.remove
設問2 点数が同じ場合には,学籍番号の文字列としての自然順序付けに従って出力するように変更する。 クラス ValueSortedMap で使用しているクラスやインタフェースの変更だけで実現する場合, 変更内容として適切なものを,解答群の中から選べ。 解答群 イ List と ArrayList を Set に変更する。 ウ List を Set に変更し,ArrayList を TreeSet に変更する。 キ List を TreeSet に変更し,ArrayList を Set に変更する。 オ List を TreeSet に変更する。
[←前の問題] [次の問題→] [問題一覧表] [分野別] [基本情報技術者試験TOP ]
©2004-2025 情報処理試験.jp
|
プライバシーポリシー・著作権・リンク
|
お問合わせ
| |
