キャラID[unique]とキャラ名[uniqueではない]を対応させる関数、例えば、
キャラ名 recentID(キャラID) の様な、関数を実装したい。
ただし、キャラ名:string, キャラID:string
内部のデータ構造としてmapが考えられるが、mapのサイズが1000ぐらいでも、
処理が大きくなりすぎる。
第1案:
まずキャラIDとキャラ名を保持するクラスを作成し、
それをリスト化することにより、最後にアクセスがあった物を一番前に出すようにすればいい。
つまり、履歴で新しい物ほどヒットしやすい構造。(今これ)
第2案:
配列で保持、IDにより昇順で並べておき、検索しやすくする。(履歴によらない)
第3案:
アクセスが新しい物を1次キャッシュに、古い物を2次キャッシュに収める。
1次キャッシュは履歴順(リスト)、2次キャッシュはID順(二分木?)
PR