读书人

容易忽略的for循环有关问题

发布时间: 2012-07-04 19:33:54 作者: rapoo

容易忽略的for循环问题

1、项目中对用户操作的结果进行审核时候,出现一个问题,如果对省份,和城市审核,出现四条数据,分别为province,city,province,city.

?

但是我提供给手机端的数据必须是省份城市一起显示,不是四条而是2条。

?

    // get user_verification data        int issyn = 0;// 0未同步,1为同步        /*         * List<UserVerificationVO> verificationid =         * userVerificationDaoImpl.queryUserVerification();         */        List<String> typelist = new ArrayList<String>();        typelist.add("province");        typelist.add("city");        typelist.add("company");        typelist.add("name");        StringBuffer completed = new StringBuffer();        completed.append(" and vc.status in(1,-1)");        VerificationContentVO provinceValue = null;        VerificationContentVO cityValue = null;        // 1。为用户信息审核        List<VerificationContentVO> getVerificationContent = verificationDaoImpl.queryVerificationContent(1, completed.toString(), issyn);        /**         * 1、注意:当连续数据库中存在两次修改地区,数据库存在四条数据,province,city等         * 按照如下遍历方式会处理最后的province和city,之后是倒数第二个province,city (non-Javadoc)         *          * @see com.bitbao.cm.service.VerificationService#sendCommentStreamMessage()         */        for (VerificationContentVO verificationContentVO : getVerificationContent) {            SystemMessage message = new SystemMessage();            if ("province".equals(verificationContentVO.getName())) {                provinceValue = verificationContentVO;                continue;            }            if ("city".equals(verificationContentVO.getName())) {                cityValue = verificationContentVO;                continue;            }            if (typelist.contains(verificationContentVO.getName().trim())) {                // basic info                message.setType(SystemMessageType.BASIC_MESSAGE);            }            else {                // industry info                message.setType(SystemMessageType.INDUSTRY_MESSAGE);            }            message.setUid(verificationContentVO.getUid());            message.setVerificationContentVO(verificationContentVO);            // save message to database            if (messageServiceImpl.add(message)) {                // update sendmessage status                verificationDaoImpl.updateVerificationForSyn(verificationContentVO.getId(), issyn + 1);            }        }        // process province and city        if (provinceValue != null && cityValue != null) {            SystemMessage message = new SystemMessage();            message.setType(SystemMessageType.BASIC_MESSAGE);            message.setProvinceValue(provinceValue.getNewValue());            message.setCityValue(cityValue.getNewValue());            message.setUid(provinceValue.getUid());            message.setVerificationContentVO(provinceValue);            if (messageServiceImpl.add(message)) {                // update sendmessage status                verificationDaoImpl.updateVerificationForSyn(provinceValue.getId(), issyn + 1);                verificationDaoImpl.updateVerificationForSyn(cityValue.getId(), issyn + 1);            }        }

?

以上处理发生的问题是:导致每次处理都会先处理最后一条数据,之后是倒数第二条。。。,处理完之后才会插入到common_message表中。

容易忽略的for循环有关问题

?

虽说每次都从最后一条开始插入数据,但是不免有些小问题。

?

可以在处理city时候将province 和city一起弄成一条数据。

?

?

?

?

?

?

?

读书人网 >行业软件

热点推荐