2 bless 1688 bless_1688 于 2016.03.07 10:55 提问

java程序,新手帮我看看,应该很简单。

订单里有5件商品,捡货人员也捡出5件商品,请写算法核对拣货单里的商品,并适当提出出错提示。

4个回答

u012531261
u012531261   2016.03.07 11:02

两个数组比较有几个共同元素?- =;是这样理解嘛

a100488
a100488   2016.03.07 11:04
star890124
star890124   2016.03.07 11:37

订单中的5件商品做外循环,拣货员的5件做内循环,判断订单中每件商品是否在拣货员拣出的5件中,若在,则把此商品从订单和拣货的商品列表中移除。
最终,订单中剩余的是预期中未完成的,拣货员拣出的剩余的是拣货员拣错的,可以作为提示。

xionglangs
xionglangs   Rxr 2016.03.07 12:13

你这个逻辑有问题,应该是客户提交了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 ){

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!