この問題を解くためには…
 → 応用編第6日目参照

問題6:コレクション

probex6-1.(難易度:★)

以下のように、0から10までの乱数を発生させてその値を表示し、0が出たら、それまで入力した整数をすべて、奇数・偶数にわけて表示するプログラムを作りなさい。この時、入力された奇数・偶数の値は、それぞれ別の、Listで作った可変長配列の中に格納すること。

期待される実行結果
0~10の値を出力:1
0~10の値を出力:9
0~10の値を出力:8
0~10の値を出力:2
0~10の値を出力:4
0~10の値を出力:3
0~10の値を出力:7
0~10の値を出力:0 ← 0が出たら、出力を終える

偶数 : 8 2 4
奇数 : 1 9 3 7

probex6-2.(難易度:★)

以下のように、0から10までの乱数を発生させてその値を表示し、0が出たら、それまで入力した整数を逆から表示するプログラムを作りなさい。値はListで作った可変長配列の中に格納すること。

期待される実行結果
0~10の値を出力:21
0~10の値を出力:9
0~10の値を出力:11
0~10の値を出力:37
0~10の値を出力:4
0~10の値を出力:3
0~10の値を出力:1
0~10の値を出力:0 ← 0が出たら、出力を終える

1 3 4 37 11 9 21

probex6-3.(難易度:★★)

以下のように、0から100までの乱数を発生させてその値を表示し、0が出たら、それまで出力した整数の1の位が同じものをまとめて表示するプログラムを作りなさい。このとき、入力された整数値は、ArrayListで作った可変長配列の中に格納すること。

期待される実行結果
0~100の値を出力:50
0~100の値を出力:43
0~100の値を出力:2
0~100の値を出力:12
0~100の値を出力:34
0~100の値を出力:24
0~100の値を出力:8
0~100の値を出力:0 ← 0が出たら、出力を終える

一の位が0 : 50
一の位が1 : なし ← 該当する数値が無い場合は、「なし」と表示する。
一の位が2 : 2
一の位が3 : 43
一の位が4 : 24 34 ← 該当するものが複数存在する場合は、すべて表示する。
一の位が5 : なし
一の位が6 : なし
一の位が7 : なし
一の位が8 : 8
一の位が9 : なし

probex6-4.(難易度:★★)

以下のように、コンソールから文字列を入力させ続け、何も入力せずEnterを押すと、それまで入力した文字列のが全て表示されるプログラムを作りなさい。このとき文字列は、Listで作った可変長配列に格納すること。

期待される実行結果
文字列を入力:apple
文字列を入力:good
文字列を入力:pineapple
文字列を入力:big
文字列を入力:dog
文字列を入力:cowboy
文字列を入力: ← 何も入力せず、Enterを押すと、入力を終える

apple good pineapple big dog cowboy

probex6-5.(難易度:★★)

probex6-4を参考にして、コンソールから文字列を入力させ続けて、何も入力せずEnterを押すと、それまで入力した文字列の中から、5文字以上の単語以外のものがすべて表示されるようにプログラムを作りなさい。なお入力され続けていた文字列は、すべて一旦Listに格納し、最後に5文字以上のものを削除してから表示しなさい。

期待される実行結果
文字列を入力:apple
文字列を入力:good
文字列を入力:pineapple
文字列を入力:big
文字列を入力:dog
文字列を入力:cowboy
文字列を入力:sparrow
文字列を入力:downtown
文字列を入力:girl
文字列を入力: ← 何も入力せず、Enterを押すと、入力を終える。

5文字未満の単語:good big dog girl ← 全単語をListに格納し、5文字以上のものを削除しすべて表示する。

probex6-6.(難易度:★)

以下のように、0から10までの乱数を発生させてその値を表示し、0が出たら、それまで入力した整数の中から2を除いた数を選んで表示するプログラムを作りなさい。このとき、入力された整数値はlistで作った可変長配列の中に格納し、最後に、2の入った要素をremove()メソッドで削除してから表示するようにしなさい。

期待される実行結果
0~10の値を出力:2
0~10の値を出力:9
0~10の値を出力:11
0~10の値を出力:3
0~10の値を出力:2
0~10の値を出力:5
0~10の値を出力:2
0~10の値を出力:0 ← 0が出たら、出力を終える

9 11 3 5

probex6-7.(難易度:★★)

以下のように、0から10までの乱数を発生させ、その数値を小さい順に並べ替えて表示されるようなプログラムを作りなさい。0が出力されたら、プログラムは終了するものとする。なお、それまで入力され続けていた数値は、Listに格納し、適切な場所に挿入するようにすること。

期待される実行結果
0~10の値を出力:5

出力された数:5

0~10の値を出力:9

出力された数:5 9 ← 9は5より大きいので、5の後に挿入する。

0~10の値を出力:1

出力された数:1 5 9 ← 1は5より大きいので、5の前に挿入する。

0~10の値を出力:3

出力された数:1 3 5 9 ← 3は1と5の間なので、1と5の間に挿入する。

0~10の値を出力:9

出力された数:1 3 5 9 9 ← すでに入力された数値も、重複してて登録する。

0~10の値を出力:0 ← 0が出たら、出力を終える

probex6-8.(難易度:★)

下記の実行結果に倣い、コンソールから、英単語を入力すると、それに対応する日本語が出てくるようにしなさい。なお、英語と日本語の対応には、Dictionaryを用いること。また、英語と日本語の対応は、以下の表を用いること。

英単語と日本語の対応表
英語日本語
cat
dog
bird
tigerトラ
期待される実行結果①(対応する日本語があった場合)
英語で動物の名前を入力してください:cat ← コンソールから英単語を入力

「猫」です。

期待される実行結果②(対応する日本語がない場合)
英語で動物の名前を入力してください:horse

対応するデータは登録されていません。

probex6-9.(難易度:★★)

実行結果にならい、キーボードから整数の値を入力すると、その値が漢数字で出力されるプログラムを作りなさい。このとき、用いられるのは、1から9に対応するのが、一から九までの漢字で、ゼロは、〇と表示するようにしなさい。また、この数字と漢字の対応は、HashMapを用いて作りなさい。また、結果を出力する際には、3桁ごとに「,」(コンマ)を出力すること。

※ヒント:入力は、数値としてではなく、文字列として受付、その中身が妥当かどうか調べるとよい。

期待される実行結果(整数の値が入力された場合)
整数の値を入力してください:1198000 ← コンソールから整数の値を入力

変換結果:一,一九八,○○○

期待される実行結果(整数以外の値が入力された場合)
整数の値を入力してください:hello

整数の値を入力してください。

probex6-10.(難易度:★)

1から10までの乱数を10回発生させ、その結果を表示し、そのあとに、そこで出力された文字の種類を表示するプログラムを作りなさい。数値はHashSetに登録し、1つの数が複数出現しても、一つとしてカウントするものとする。

期待される実行結果
乱数: 1 2 1 10 8 7 5 4 2 9
出現した数: 1 4 5 7 9 10