自作クラスのソート方法を自分用にメモ。
[ ソート方法 ]
自作クラスVector2を要素とする配列を要素のYが小さい順にソートします。
import java.util.Arrays; void setup() { final Vector2[] ArrayA = new Vector2[] { new Vector2(1, 4), new Vector2(6, 5), new Vector2(2, 3), }; println("[ ソート前 ]"); for (int i = 0; i < ArrayA.length; i++) { println("ArrayA[" + i + "]: " + ArrayA[i].ToString()); } println(); final Vector2[] SortedArrayA = Arrays.copyOf(ArrayA, ArrayA.length); Arrays.sort(SortedArrayA, (Vector2 Item1, Vector2 Item2) ->//Yが小さい順にソート { if(Item1.Y > Item2.Y) { return 1; } else if(Item1.Y < Item2.Y) { return -1; } else { return 0; } }); println("[ ソート後 ]"); for (int i = 0; i < SortedArrayA.length; i++) { println("SortedArrayA[" + i + "]: " + SortedArrayA[i].ToString()); } println(); } class Vector2 { float X = 0; float Y = 0; Vector2(float _X, float _Y) { X = _X; Y = _Y; } String ToString() { return "(" + X + ", " + Y + ")"; } }
[ ソート前 ] ArrayA[0]: (1.0, 4.0) ArrayA[1]: (6.0, 5.0) ArrayA[2]: (2.0, 3.0) [ ソート後 ] SortedArrayA[0]: (2.0, 3.0) SortedArrayA[1]: (1.0, 4.0) SortedArrayA[2]: (6.0, 5.0)