已经得到值,现在需要判断:
Q290010101 1
Q290060101 1
Q290060501 1
Q290010101 2
将Q290010101的值相加,也就是
Q290010101  3
Q290060101 1
Q290060501 1 
应该怎么做? 写的代码如下:
public void setHBDetail(String[] masterid) {
  List<String> list = new ArrayList<String>();  
for (String item : masterid) { 
  if (!list.contains(item)) {  
  list.add(item);  
 } 
 }  
String[] ary = list.toArray(new String[0]); 
 String a = "_"; 
 for (String value : ary) { 
  // 得到去重复后的单号   
List<InboundDetail> list2 = this.inboundService.getMasterid(value);   
for (InboundDetail inboundDetail : list2) {   
 // 根据单号及SKU查询  
  List<InboundDetail> list3 = this.inboundService.getMasteridandSku(value, inboundDetail.getSkuNo()); 
   for (InboundDetail inboundDetail2 : list3) {    
 Integer b=(int)inboundDetail2.getExppcsqty();   
   Object[][] vos={{inboundDetail2.getSkuNo(),b}};  
     HashMap<String, Integer> mapResult=new HashMap<String, Integer>();    
   for (int i = 0; i < vos.length; i++) {   
    Object[] vo=vos[i];  
     Integer num=mapResult.get(vo[0]);    
   if(num==null){    
    num=0;     
  }    
   mapResult.put((String) vo[0], num+(Integer)vo[1]);    
  }       System.out.println(mapResult);   
 }   
 } 
 }
   }
但是得到的还是
Q290010101 1
Q290060101 1
Q290060501 1
Q290010101 2
因为每次循环只取到一个值,这样比的话永远都不会重复,想知道该怎么改这个才可以实现
Q290010101  3
Q290060101 1
Q290060501 1javamap

解决方案 »

  1.   

    使用双重for循环来做嘛,先从map里面去一个键的值,然后再把改建和map里面的所有键比较,如果有就相加,没有就输出
      

  2.   

    先判断一下是否已经存在了,如果存在了就在原来的基础上加上现在的值,如果不存在,就往map里面写入了。你写的代码没看懂,本来很简单的东西,怎么搞那么复杂啊。Map<String,Integer> map = new HashMap<String,Integer>();public void add(String key,Integer value){
      if(map.get(key)!=null){
        map.put(key,map.get(key)+value);
      }else{
        map.put(key,value);
      }
    }
    大概算法是这样,具体语法对不对,你自己测试下吧。
      

  3.   

    String str2 = masterStr;
    String[] str = str2.split("_");
    setHBDetail(str);
      

  4.   


                            String str2 = masterStr;//得到合并单据的多个单号
    String[] str = str2.split("_");//以“_”分割
    setHBDetail(str);将单号放入setHBDetail方法中                          我要做的就是,将这多个单号下的SKU进行比较,如果SKU相同,值相加
    单据不止两个,有多个
      

  5.   

    不固定还是可以的啊,map的大小你可以获取晒,大的大小就是循环的次数