如何比较迭代(Iterator)出来的数据是否相等 我这里有一个集合对象,但集合对象中有很多的数据,那么我应该怎么把这个集合中的数据迭代出来并进行比较,如果数据相等就相加.请指教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好.我再说具体点.需要是这样的.比如说我有一个定单(OrderInfo),在这个定单下面有定单详情(OrderDetail),客户在定购产品时,很可能一个定单重复定购了某类产品,那么在定单详情下就会出现在多个同类产品定购记录.现在为了汇总工作,要记录客户某次定单中总的定单金额,某类产品的定购金额,所以就需要把重复定购了的同类产品进行合并处理.那么在这个定单详情(OrderDetail)集合中.如何比较得出这些定购记录哪些是同一类产品. 首先,在数据库中,如果要解决上述问题,肯定就是用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; } Executors.newCachedThreadPool();在哪调用? 初学者问:为什么ArrayList不能放int? java ORA-01002: 读取违反顺序[急急急!!!!] jade 虚心请教~~~小弟实在没法了........ 關於jxl的問題 java项目开发招募有经验的人士参与 有关使用jni调用c\c++的问题 Java application如何访问Cookie 小弟最近学java,有个小问题 遍历指定文件夹的代码,大家也把自己贴上来吧,希望前辈们也进来指点一下,我想学习学习,提建议的,贴代码的都有分。 求JAVA高手
需要是这样的.比如说我有一个定单(OrderInfo),在这个定单下面有定单详情(OrderDetail),客户在定购产品时,很可能一个定单重复定购了某类产品,那么在定单详情下就会出现在多个同类产品定购记录.
现在为了汇总工作,要记录客户某次定单中总的定单金额,某类产品的定购金额,所以就需要把重复定购了的同类产品进行合并处理.那么在这个定单详情(OrderDetail)集合中.如何比较得出这些定购记录哪些是同一类产品.
如果需要用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;
}