循环出现重复问题,。。

if (list != null && list.size() > 0) {
for (int i = 0; i < list.size(); i++) {

            if (list.get(i).getSoftfx().equals("192")) {
                for (int j = 0; j < sysid.length - 1; j++) {

                    String itemid = UUID.randomUUID().toString();
                    String traceid = UUID.randomUUID().toString();
                    StringBuffer xml = new StringBuffer(
                            "<?xml version=\"1.0\" encoding=\"GBK\"?>");
                    xml.append("<apps id=\"24\" name=\"app24\">");
                    xml.append("<open>");
                    xml.append("<work doc_id='"
                            + list.get(i).getReqinstid() + "' work_id='"
                            + itemid + "' user_id='" + user_id[j]
                            + "' title='" + list.get(i).getReqName()
                            + "' start_time='"
                            + c.get(Calendar.HOUR_OF_DAY)
                            + "' ");
                    xml.append("url='http://"
                            + jlslmurl
                            + "/clientAction.do?method=clienLogin&amp;nextPage=/slm/unifymgr/unify-view.jsp&amp;instid="
                            + list.get(i).getReqinstid());
                    xml.append("&amp;processid="
                            + "3dc8887c-5631-42c8-bd4d-f0369b8fc988"
                            + "&amp;itemid=" + itemid + "&amp;traceid="
                            + traceid + "' from_man='admin' pri='1' type='"
                            + 3 + "'/>");
                    xml.append("</open>");
                    xml.append("</apps>");
                    HttpClient client = new HttpClient();
                    // client.getParams().setContentCharset("GBK");
                    PostMethod post = new PostMethod(url);
                    try {
                        post.setRequestEntity(new StringRequestEntity(xml
                                .toString(), "text/xml", "UTF-8"));
                        int num = client.executeMethod(post);
                        // 打印返回的信息
                        byte[] by = post.getResponseBody();
                        String log = new String(by);
                        // 释放连接
                        post.releaseConnection();

                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    service.insert25(list.get(i).getReqinstid(),
                            itemid, traceid, sysid[j]);

                }
            }

        }
    }
    比如说我这里数组sysid有三条数据分别为[1,2,3]  为什么我最后调用的insert方法,会重复插入三遍呢?是哪部分的循环出现问题了?

1个回答

sysid的length是3的话,你把insert25方法写到了for循环里面了,当然会循环三次

shuai30000
shuai30000 回复wangzjdcits:进去一次的话,指挥insert一次,导致执行了三次,只会是这个循环进去了三次,导致三次插入,具体是哪导致的,你dubug状态下跟着数据走一遍就知道了
大约 4 年之前 回复
wangzjdcits
wangzjdcits 回复shuai30000: 为什么是进去三次?不是应该进去一次,然后进行for循环吗?
大约 4 年之前 回复
shuai30000
shuai30000 回复shuai30000: debug状态是不是这样?
大约 4 年之前 回复
shuai30000
shuai30000 回复wangzjdcits: 那你的for (int i = 0; i < list.size(); i++) ,if (list.get(i).getSoftfx().equals("192"))进去了三次,导致循环了三次
大约 4 年之前 回复
wangzjdcits
wangzjdcits 我想要的结果是【1,2,3】,可是得到的却是【1,2,3,1,2,3,1,2,3】,感觉没问题啊,j=0的时候,按理说不是应该只执行insert25方法里sysid=1嘛,为什么1,2,3都要来一遍
大约 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐