であなたのリストを並べ替える:
class CustomSorting<T> implements Comparator<T> {
private List<T> orderList;
public CustomSorting(T ... elements) {
this.orderList = Arrays.asList(elements);
}
@Override
public int compare(T a, T b) {
return weight(a) - weight(b);
}
private int weight(T a) {
int index = orderList.indexOf(a);
return index >= 0 ? index : Integer.MAX_VALUE;
}
}
使用法:
List<Integer> list = Arrays.asList(0,1,2,3,4,5,6,7,8,9,10,0,2,2,2,3,3,6,6,6);
System.out.println(list);
Collections.sort(list, new CustomSorting<>(6,7,3));
System.out.println(list);
出力:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 2, 2, 2, 3, 3, 6, 6, 6]
[6, 6, 6, 6, 7, 3, 3, 3, 0, 1, 2, 4, 5, 8, 9, 10, 0, 2, 2, 2]
私はあなたが探しているかわからないんだけど。期待した結果であなたの質問を編集できますか? – tobifasc
カスタムコンパレータを用意し、何でもしてください。 – Thomas
カスタマイズされたコンパレータは可能でしょうか? – prime