便利なLinked List
リンクドリストはオブジェクトの配列なのですが、汎用性が高く、
とにかく使い勝手が良い。私の一番好きなクラスかもしれない(笑)。
LinkedListの詳細についてはここでは記載しませんが、
オブジェクトをぽんぽん入れられて、前から(後ろから)1個づつ取り出せる配列といった感じ。
取り出しつつ削除もしてくれるところから、”待ち行列”として利用できるのが特徴です。
例えば、電卓の計算履歴を残す場合だったら、
’=’が押されるたびに計算結果を文字列としてリストに追加し、
GSon経由でSharedPreferencesで保存。
キャラクターがたくさんいるゲームだったら、
アニメーションさせるキャラのクラスをリストに追加して、
1体づつ処理していくなど、使い道はさまざまです。
利用方法は、LinkedList型の変数を用意し、newでインスタンス化します。
インスタンスに対し、各メソッドで、オブジェクトを追加、取得などを行います。
LinkedList list = new LinkedList();
list.add("りんご");
list.add("ゴリラ");
String string1 = list.pollFirst();
String string2 = list.pollFirst();
主なメソッド
追加系
boolean add(Object object) |
リストの最後に要素を追加 |
void addLast(Object object) |
リストの最後に要素を追加 |
void add(int index,Object object) |
リストの指定された位置に要素を追加 |
indexが範囲外の時は例外 IndexOutOfBoundsException を投げる |
void addFirst(Object object) |
リストの先頭に要素を挿入 |
取り出す系
Object get(int index) |
リスト内の指定された位置の要素を取得 |
indexが範囲外の時は、例外 IndexOutOfBoundsException を投げる |
Object getFirst() |
最初の要素を取得 |
Object getLast() |
最後の要素を取得 |
Object pollFirst() |
最初の要素を取得し、削除する。(無いときはnull) |
Object pollLast() |
最後の要素を取得し、削除する。(無いときはnull) |
その他の操作
Object set(int index,Object object) |
指定された位置にある要素を、指定された要素で置き換える |
戻り値は、置き換えられた、元の要素 |
indexが範囲外なら例外 IndexOutOfBoundsException |
void clear() |
リストから全ての要素を削除 |
Object remove(int index) |
指定された位置の要素を削除 |
ここに挙げたのはほんの一部ですが、とても便利なクラスなので、
がんがん使っていきたいですね!