ここでは、当社の新人研修受講者に向けて、基本情報のJavaの過去問を掲載しています。

想定しているのは、NetBeansなどのIDEにコピー・ペーストしたうえで、自分の正しいと思う答えを埋めて動作を確認するという使い方です。


次の Java プログラムの説明及びプログラムを読んで,設問1,2に答えよ。

〔プログラムの説明〕
 “すべきこと”(以下,ToDo という)を管理するプログラムである。
(1) クラス ToDo は ToDo を表すクラスであり,コンストラクタで主題,期限,重要度を指定する。 期限は,年月日を表す8桁又は年月日時分を表す 12 桁の数字から 成る文字列(以下,日時という)であり,例えば,2016 年4月 16 日を表す文字列は“20160416”, 2016 年4月 16 日午後1時0分を表す文字列は“2Ø16Ø4161300”である。ここで, 日時に誤りはないものとする。
 主題,期限,重要度を取得する各メソッドと,状態を設定及び取得するメソッド, ToDo を識別するフィールド id をもつ。
 列挙 Priority は ToDo の重要度を表す列挙であり,重要度が低い順に LOW,MIDDLE,HIGH である。
 列挙 State は ToDo の状態を表す列挙であり,NOT_YET_STARTED は未着手, STARTED は着手済み,DONE は完了を表す。

(2) クラス ToDoList は ToDo のリストを保持するクラスである。
 リスト中に,フィールド id の値が同じ ToDo を複数個含まないことを保証する。
 ToDo を追加するメソッド add と,ToDo の更新を行うメソッド update,条件に合う ToDo のリストを返すメソッド select をもつ。
 メソッド add の引数に,既にリストに保持されている ToDo を指定したとき, 及びメソッド update の引数に,リストにない ToDo を指定したときは何もしない。
 メソッド setect の引数には,条件を 0 個以上指定できる。条件を指定したときは, 全ての条件に合致する ToDo から成るリストを返す。条件を指定しないときは, 保持する全ての ToDo から成るリストを返す。

(3) インタフェース Condition は,ToDo を選択する際の条件を表すクラスが 実装するインタフェースである。メソッド test は条件に合致するときに true を返す。

(4) クラス ToDoListTester は,テスト用のクラスである。

[プログラム1]

[プログラム2]

[プログラム3]

[プログラム4]

設問1   プログラム中の/* */ に入れる正しい答えを,解答群の中から選べ。

a に関する解答群

ア ((ToDo) o).id.equals(id)      イ (ToDo) o.id.equals(id)

ウ id.equals(id)             エ o.id.equals(id)

b に関する解答群

ア !todoList.contains(todo)         イ !todoList.isEmpty()

ウ todoList.contains(todo)         エ todoList.isEmpty()

c に関する解答群

ア != -1       イ < todoList.size()

ウ == -1       エ >= todoList.size()

d に関する解答群

ア boolean selected = false       イ boolean selected = true

ウ int selected = 0           エ int selected = todoList.size()

e に関する解答群

ア +=       イ =       ウ ==       エ |=

設問2   プログラム4の実行結果を図1に示す。 に入れる正しい答えを, 解答群の中から選べ。

図1

解答群

ア 主題:PC 購入,期限:20160531, 優先度:HIGH

イ 主題:会議室予約, 期限:201605301200, 優先度:HIGH

ウ 主題:チケット購入, 期限:20160430, 優先度:MIDDLE

エ 主題:報告書作成, 期限:20160428, 優先度:HIGH

オ 主題:ホテル予約, 期限:20160420, 優先度:LOW

カ 主題:メール送信, 期限:201604181500, 優先度:HIGH