日期:2014-05-20  浏览次数:20616 次

如何比较迭代(Iterator)出来的数据是否相等
我这里有一个集合对象,但集合对象中有很多的数据,那么我应该怎么把这个集合中的数据迭代出来并进行比较,如果数据相等就相加.
请指教

------解决方案--------------------
首先,在数据库中,如果要解决上述问题,肯定就是用group by product就可以了。
如果需要用java程序实现,则可以使用集合操作来实现。
大概流程是:
在产品订购记录中循环:此为一个集合的循环。
使用Hashtable,如果出现了产品,则查找产品是否存在,如果存在,则对相应的总数的信息进行修改。
如果不存在,则生成一个新的记录,并且将其数量作为value的值。
模仿的代码为:
/**
* 传入的参数为承载OrderInfo的集合。
* @return (产品名,总价值)的集合。
*/
public Hashtable calPrice(List orderList) {
Hashtable hash = new Hashtable();

for(int i = 0; i < orderList.size(); i++) {
OrderInfo orderInfo = (OrderInfo) orderList.get(i);

Iterator iterator = orderInfo.getProductList();

while(iterator.hasNext()) {
Product product = (Product) iterator.next();
String productName = product.getProductName();

if(!hash.contains(productName)) {
hash.put(product.getProductName(), product.getPrice());
}
else {
double price = Double.parseDouble((String) hash.get(productName));
price += product.getPrice();
hash.put(productName, price);
}
}
}

return hash;
}