【发布时间】:2019-05-10 20:45:48
【问题描述】:
我正在尝试订购一个 Arraylist,其中包含从最大到最小的 BigDecimal 货币价值。 这是我的代码:
public void bubble_sort(ArrayList<String> nameArray, ArrayList<BigDecimal> priceArray){
for (int i = 0; i < priceArray.size(); i++){
for (int j = 0; j < priceArray.size() - 1; j++){
if (priceArray.indexOf(j) > priceArray.indexOf(j+1)){
int temp = priceArray.indexOf(j);
priceArray.set(j, priceArray.get(j+1));
priceArray.set(j+1, BigDecimal.valueOf(temp));
}
}
}
Log.v("Ordering array", priceArray.toString());
}
但是顺序还是和原来的数组一样。 我该怎么办?
【问题讨论】:
-
使用
priceArray.get(j).compareTo(priceArray.get(j+1)) > 0而不是这个:priceArray.indexOf(j) > priceArray.indexOf(j+1) -
谢谢,但现在它为每个价格打印“-1”,而不是价值。 --> 如果大小为 3,则打印 [-1, -1, -1]。也许我的代码中的其他地方有问题?
标签: java android arraylist bubble-sort