最小から最大になるように ArrayList を並べ替えたいと思います。次のコードがあります。
public static ArrayList<BigInteger> sortBigInteger(ArrayList<BigInteger> toSort){
ArrayList<BigInteger> toReturn = new ArrayList<BigInteger>();
toReturn.add(toSort.remove(0));
for (int i = 0; i < toSort.size(); i++){
BigInteger n = toSort.get(i);
boolean eval = false;
in: for (int a = 0; a < toReturn.size(); a++){
if (n.compareTo(toReturn.get(a)) < 0){
toReturn.add(a, toSort.remove(i));
eval = true;
break in;
}
}
if (!eval) toReturn.add(toSort.remove(i));
}
toSort = toReturn;
return toReturn;
}
しかし、私は要素を失います。サイズ 32 の ArrayList で、サイズ 15 の ArrayList を取得します。余分な削除はどこで発生していますか?
主な質問: ArrayList をどのようにソートしますか?