0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

paiza 勉強記録【検索履歴】【Java】

Last updated at Posted at 2024-12-31

paizaでの勉強記録です。
今回は下記のレベルアップ問題集のCランク問題の「検索履歴」を実施しました。
ArrayListを検索履歴の格納用として使用しました。
Listからremoveした後に勝手に要素の前詰めをしてくれるんですね
設計段階で検索履歴にある文字列が来た場合の既にある要素の削除や、履歴の先頭に持ってくる処理をどうすればいいのかと悩みましたが、ArrayListが全部解決してくれました、、、

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
//        検索ワードの数
        int number = sc.nextInt();
//        検索履歴
        List<String> searchHistory = new ArrayList<>();
        
        for (int i = 0; i < number; i++) {
//        	検索ワードの取得
        	String inputWord = sc.next();
//        	取得した検索ワードが検索履歴に存在するかのチェック
        	if (searchHistory.contains(inputWord)) {
//        		先に存在している検索履歴を削除してから、検索履歴の先頭に追加
//        		後に削除にする場合はlastindexofで削除対象の場所を探す
        		searchHistory.remove(searchHistory.indexOf(inputWord));
        		searchHistory.add(0, inputWord);
			} else {
				searchHistory.add(0, inputWord);
			}
		}
        
//        検索履歴を先頭から出力
        for (String word: searchHistory) {
			System.out.println(word);
		}
        
        sc.close();
    }
}

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?