Java/Python 導入ガイド《4》Collection Interface
Java プログラマーのための Python 導入ガイド〈初級/入門編〉《Jython2.5.0》
《4》Collection Interface
《著》森こねこ・本間りす・小粒ちゃん《監修》小泉ひよ子とタマゴ倶楽部
第1版♪2003/05/23 ● 第2版♪2009/04/03
》作業中です《 2006年6月29日 (木)
Collection Interface
Java の公式サイトには、次の《事例》が紹介してあります。
# Iterators public interface Iterator { boolean hasNext(); E next(); void remove(); //optional }
インターフェース Iterator では、コンテナー内の要素を扱うメソッドを規定しています。また、これらのメソッドを利用した、次の《 事例》を紹介しています。
static void filter(Collection c) { for (Iterator it = c.iterator(); it.hasNext(); ) if (!cond(it.next())) it.remove(); }
関数 filter は、引数に指定されたコレクション c から、関数 cond の条件を満たさない要素だけを削除します。ただし、その具体的な条件は、何も示されていません。そこで、便宜的に用意した次の関数を使って、説明を続けます。
>>> def cond(e): return e%2
関数 cond は、奇数/偶数を判定します。引数 e が奇数なら True を、偶数なら False をリターン値とします。
■ リスト:list
>>> def list_filter(c): ... for e in c: ... if not cond(e): c.remove(e)
関数 list_filter は、リスト c から、奇数でない要素を削除します。
list 型の組み込みメソッド remove(value) は、リストから(より先頭の)要素 value を削除します。条件式 cond(e) を満たさないなら、要素 e を削除します。
>>> c = range(5) >>> c [0, 1, 2, 3, 4] >>> list_filter(c) >>> c [1, 3]
list_filter を利用すると、リスト c から、奇数以外の要素(すべての偶数)が削除されたのが分かります。
Last updated♪2009/08/03