なんか、忘れてて微妙にはまったのでメモ。 ArrayListに自前クラスを入れて、自前クラスの要素でソートをする場合の例。MojiSproteってのは AndEngineのSpriteのサブクラス。ようはレイヤー順に並べ替えたかった。
1 2 3 4 |
[java] ArrayList<MojiSprite> sorted_list = new ArrayList<MojiSprite>(); Collections.sort(sorted_list, new MojiArrayLayerComparator()) [/java] |
で比較関数の定義
1 2 3 4 5 6 7 |
[java] public class MojiArrayLayerComparator implements java.util.Comparator<MojiSprite>{ public int compare(MojiSprite o1, MojiSprite o2){ return o2.getZIndex() - o1.getZIndex(); } } [/java] |
ここで、注意がComparatorとかパラメータを一致させないと、ビルド時に警告がでる。
http://masao6739.blog89.fc2.com/blog-entry-7.html
をみてやっと思い出した。