演習課題「検索履歴」
あなたが利用しているブラウザでは検索ワードの履歴を見ることができません。あなたは検索ワードの履歴を見られないのは不便だと思ったので、検索ワードの履歴を見る機能を自分で作ることにしました。
検索ワードの履歴とは次のように作られます。
* 検索ワード W が以前に入力されたことがある場合:
* 履歴中の W を削除する。
* 履歴の先頭に W を追加する。
* 検索ワード W が以前に入力されたことがない場合:
* 履歴の先頭に W を追加する。
入力例 1 では履歴は
1. candy
2. book
3. apple
になります。
検索ワード W が N 個与えられるので、N 個の検索ワードが与えられた後の履歴を表示するプログラムを書いてください。
期待する出力値
candy
book
apple
#03:問題を解く
前回のチャプターでは、問題文を読みどのように処理していけばいいかを学習しました。
このチャプターでは、実際にコードを書いて解答をつくっていきましょう。
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//検索ワード数を受け取る
int N = sc.nextInt();
//履歴用のArrayListを作成
ArrayList<String> words = new ArrayList<String>();
//次に受け取る検索ワードがある間
while (sc.hasNext()) {
//検索ワードを受け取る
String W = sc.next();
//検索ワードがリストに入ってるかどうか
if (words.contains(W)) {
//すでに検索されていたとき、そのワードを履歴リストから削除
words.remove(W);
}
//検索ワードを履歴リストに追加
words.add(0,W);
}
//出力
for (String word : words) {
System.out.println(word);
}
}
}
5
book
candy
apple
book
candy
6
apple
book
information
note
pen
pineapple
paiza ArrayListクラスを使おう
https://paiza.jp/works/java/primer/beginner-java4/5035
Let'sプログラミング ArrayListクラス
https://www.javadrive.jp/start/arraylist/index1.html
Java基礎文法最速マスター - いろいろ解析日記
http://d.hatena.ne.jp/nattou_curry_2/20100130/1264821094
検索履歴
下記の問題をプログラミングしてください。
あなたが利用しているブラウザでは検索ワードの履歴を見ることができません。あなたは検索ワードの履歴を見られないのは不便だと思ったので、検索ワードの履歴を見る機能を自分でつくることにしました。
検索ワードの履歴とは次のようにつくられます。
検索ワード W が以前に入力されたことがある場合:
履歴中の W を削除する。
履歴の先頭に W を追加する。
検索ワード W が以前に入力されたことがない場合:
履歴の先頭に W を追加する。
検索ワード W が N 個与えられるので、N 個の検索ワードが与えられた後の履歴を表示するプログラムを書いてください。
入力される値
入力は以下のフォーマットで与えられます。
N
W_1
W_2
...
W_N
1 行目には検索ワードの数を表す整数 N が与えられます。
続く N 行では検索ワード W_i が与えられます。
続く N 行のうちの i 行目 (1 ≦ i ≦ N) には、検索ワード W_i が与えられます。検索ワード W_i は小文字のアルファベット a ~ z のみからなる文字列です。
入力は合計 N + 1 行であり、 最終行の末尾に改行が 1 つ入ります。
入力値最終行の末尾に改行が1つ入ります。
文字列は標準入力から渡されます。
期待する出力
検索ワードを N 個入力した後の検索履歴を出力してください。
出力の最後に改行を入れ、余計な文字、空行を含んではいけません。
条件
すべてのテストケースにおいて、以下の条件をみたします。
1 ≦ N ≦ 100
各 W_i (1 ≦ i ≦ N) に対して、W_iの文字数が20を超えない。
入力例1
5
book
candy
apple
book
candy
出力例1
candy
book
apple
入力例2
6
apple
book
information
note
pen
pineapple
出力例2
pineapple
pen
note
information
book
apple