问题描述
- java程序,新手帮我看看,应该很简单。
-
订单里有5件商品,捡货人员也捡出5件商品,请写算法核对拣货单里的商品,并适当提出出错提示。
解决方案
两个数组比较有几个共同元素?- =;是这样理解嘛
解决方案二:
http://www.csdn.net/article/2015-01-15/2823577 看下这个博客
解决方案三:
订单中的5件商品做外循环,拣货员的5件做内循环,判断订单中每件商品是否在拣货员拣出的5件中,若在,则把此商品从订单和拣货的商品列表中移除。
最终,订单中剩余的是预期中未完成的,拣货员拣出的剩余的是拣货员拣错的,可以作为提示。
解决方案四:
你这个逻辑有问题,应该是客户提交了5份订单,贱货人员先查询到客户的订单,再通过订单一一对应的去捡货,而不是先贱货,再去对应。下面是你的逻辑的写法。
List customerGoods=seacher.customerGoods();//查询出客户的订单商品,这里就是那5件订单商品
List shopGoods=seacher.shopGoods();//查询出捡货人员提供的商品
if(customerGoods !=null){
if(shopGoods!=null){
if(customerGoods.size()==shopGoods.size()){
int[] shopId=new int[shopGoods.length];//获取能使客户商品和捡货人员商品配对的下标号。
for(int i=0;i<customerGoods.size();i++){
for(int j=0;j<shopGoods.size();j++){
if(!customerGoods[i].getName().equals(shopGoods[j].getName())){
System.out.println("客户的"+customerGoods[i].getName()+"这个订单不存在。");
}else{
shopId[j]=j+1;/因为int数组默认值为0,下标有可能为0,下面判断有问题,所以加1
}
}
}
for(int i=0;i<shopId.length;i++){
if(shopId[i]!=0){
System.out.println("客户的"+shopGoods[shopId[i]-1].getName()+"这个订单捡货人员已捡。");
}else{
System.out.println("贱货人员捡的这个叫"+shopGoods[i].getName()+"的产品不是客户的产品。");
}
}
}else{
System.out.println("客户的订单商品和捡货人员的捡货数目不对");
}
}else{
System.out.println("捡货人员没捡货");
}
}else {
System.out.println("客户没有订单");
}
for(CustomerGoods ){
}