/*
*得到多个单号
/
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 = "_";
Map<String, Integer> map = new HashMap<String, Integer>();
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-1; i++) {
Object[] vo = vos[i];
String id=(String) vo[0];
Integer num = (Integer) vo[1];
for (int j = i+1; j < vos.length; j++) {
Object[] vo_j = vos[j];
                          String id_j=(String) vo_j[0];
Integer num_j =(Integer) vo_j[1];
                         if(id.equals(id_j))num+=num_j;
}
                                          mapResult.put(id,num);

}
System.out.println(mapResult);
}
}
}
}
但是还是
{Q290010101=1}
{Q290060101=1}
{Q290060501=1}
{Q290010101=2}
我自己刚刚写的一个例子
public static void main(String[] args) {
Object[][] vos = { { "Q290010101", 1 }, { "Q290060101", 1 }, { "Q290060501", 1 }, { "Q290010101", 2 }, };   
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);  
}
这样的话,得到的就是正确的,代码错的原因也知道了,因为每次循环只拿到了一个值,所以永远都比较不出重复的,那么该怎样循环才能一次得到所有值放到这个Object[][] vos 二维数组?赋值的方式没得到结果,对二维数组不是很熟,麻烦懂的人用代码写出来,谢谢,正确的结果应该是:
{Q290010101=3, Q290060501=1, Q290060101=1}
javaObject[][] 

解决方案 »

  1.   

    这个代码太凌乱了  为什么要用2为数组来装 
    HashMap<String, Integer> mapResult = new HashMap<String, Integer>();
    这个注释了 放在所有for的外面可以吗
      

  2.   

    你现在的输出,输出的只是每次放入mapResult中的值你的Map<String, Integer> map = new HashMap<String, Integer>();没用上,将mapResult删了,用map再试试吧你这代码真的有点乱
      

  3.   

    现在是这样了:
    {Q290010101=1}
    {Q290010101=1, Q290060101=1}
    {Q290010101=1, Q290060501=1, Q290060101=1}
    {Q290010101=3, Q290060501=1, Q290060101=1}
      

  4.   

    这就是你要的了撒  最后打印那个就是你现在mapResult 装的值
      

  5.   

    我感觉楼主是不是刚进电商的开发部?
    遍历map的方式换一下试试
      

  6.   

    因为huage1998 在前面最先,所以只好大部分给他了,不过也谢谢你的回答