読者です 読者をやめる 読者になる 読者になる

kojiko-android’s blog

開発中にハマった時の解決策や、忘れがちなことを残しておきます。

LinkedListクラスのよく使うメソッド

便利なLinked List

 リンクドリストはオブジェクトの配列なのですが、汎用性が高く、
とにかく使い勝手が良い。私の一番好きなクラスかもしれない(笑)。
LinkedListの詳細についてはここでは記載しませんが、
オブジェクトをぽんぽん入れられて、前から(後ろから)1個づつ取り出せる配列といった感じ。
取り出しつつ削除もしてくれるところから、”待ち行列”として利用できるのが特徴です。

例えば、電卓の計算履歴を残す場合だったら、
’=’が押されるたびに計算結果を文字列としてリストに追加し、
GSon経由でSharedPreferencesで保存。
キャラクターがたくさんいるゲームだったら、
アニメーションさせるキャラのクラスをリストに追加して、
1体づつ処理していくなど、使い道はさまざまです。



 利用方法は、LinkedList型の変数を用意し、newでインスタンス化します。
インスタンスに対し、各メソッドで、オブジェクトを追加、取得などを行います。

LinkedList list = new LinkedList();
list.add("りんご");
list.add("ゴリラ");

String string1 = list.pollFirst();  //  りんご size 1
String string2 = list.pollFirst();  //  ゴリラ  size 0

主なメソッド

追加系
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)
指定された位置の要素を削除

 ここに挙げたのはほんの一部ですが、とても便利なクラスなので、
がんがん使っていきたいですね!