java bigdecima_Java收藏排序BigDecimal

我想通过BigDecimal排序一个ArrayList和对砖墙来临。我有一个类,看起来有点像这样:Java收藏排序BigDecimal

public class deal implements Comparable{

protected BigDecimal bdPrice;

protected int iQuantity;

protected String sDealType;

protected UUID dealUniqueID;

protected int dealID;

protected BigDecimal bdUnitPrice;

public deal(){

bdPrice = new BigDecimal("0");

bdUnitPrice = new BigDecimal("0");

iQuantity = 1;

sDealType = "Single item";

dealUniqueID = UUID.randomUUID();

dealID = 0;

}

private void setUnitPrice(){

this.bdUnitPrice = this.bdPrice.divide(new BigDecimal(this.iQuantity));

}

public BigDecimal compareTo(deal oDeal) {

// TODO Auto-generated method stub

return bdUnitPrice.compareTo(oDeal.getUnitPrice());

}

public boolean equals(deal oDeal) {

if (!(oDeal instanceof deal))

return false;

deal oD = (deal) oDeal;

return this.bdUnitPrice.equals(oD.bdUnitPrice);

}

}

和我的主要Android的活动是这样的:

public class SupermarketDealsActivity extends Activity {

private ArrayAdapter itemAdapter;

private ListView lvDeals;

private ArrayList itemArray;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

SetUpView();

}

private void SetUpView(){

lvDeals = (ListView)this.findViewById(R.id.listDeals);

itemArray = new ArrayList();

itemArray.clear();

itemAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,itemArray);

lvDeals.setAdapter(itemAdapter);

}

private void CreateADeal(int iQuantity, BigDecimal bdPrice) {

deal oDeal = new deal();

oDeal.setQuantity(iQuantity);

oDeal.setPrice(bdPrice);

CreateListDeals(oDeal);

}

private void CreateListDeals(deal oDeal){

itemArray.add(oDeal);

Collections.sort(itemArray,Collections.reverseOrder());

itemAdapter.notifyDataSetChanged();

}

}

在我的java类,我与我的compareTo方法说得到一个错误:

类型不匹配:不能从int转换为BigDecimal

我一定错过了一些东西,它是什么?

干杯

2012-06-29

Jarede

+0

compareTo不应该返回BigDecimal。 –

+0

好吧,但我怎么去比较和排序我的unitprices是BigDecimal格式...我把它转换为字符串? –

+0

不,您更改'compareTo'的返回类型以适合界面的正确签名。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值