`
woshixushigang
  • 浏览: 577953 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

容易忽略的for循环问题

    博客分类:
  • j2ee
 
阅读更多

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表中。

 

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

 

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

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Visual Studio 2005中容易被忽略的技巧.pdf

    - **应用场景**:适用于需要频繁重复编写的代码段,如try-catch结构、for循环等。 - **实际操作**:在代码编辑器中输入代码片段的名称(如try),然后按下Tab键即可插入相应的代码模板。 ##### 2.6 代码重构 - **...

    JavaScript中对循环语句的优化技巧深入探讨

    循环是所有编程语言中最为重要的机制之... 然而for正是 javascript 工程师们在优化程序时最容易忽略的一种循环。我们先来回顾一下for的基本知识。 javascript 的for语法继承自c语言,for循环的基本语法有两种使用方法。

    JAVA基础易错总结(50%你不知道)

    例如,虽然大部分开发者了解变量声明,但有时会忽略初始化的重要性。在Java中,未初始化的变量可能含有默认值,这可能导致逻辑错误。此外,对数据类型的深入理解也很关键,比如整型溢出问题,当数值超出其类型范围时...

    Java程序员容易犯的10个错误

    正确做法是使用迭代器,但使用增强for循环(for-each)配合`list.remove()`会抛出`ConcurrentModificationException`。正确的迭代器移除方式如下: ```java Iterator&lt;String&gt; iter = list.iterator(); while ...

    Bat批处理创建桌面快捷方式并且指定浏览器运行参数忽略ssl不安全提示

    内容概要:工作中我们可能常常遇到一些需要批量处理的工作...阅读建议:可以了解一些bat 和vb的基本语法,比如变量赋值、Windows系统变量、for循环等等。。。在学习的过程要结合这些内容一起来实践,并调试对应的代码。

    关于向量容器和C++Primer中容易让人忽略的几点细节

    - `size_type`:在C++中,`size_type`是一个无符号整型,常用于表示容器大小,例如在for循环中作为索引变量的类型。 - `push_back()`函数:用于在向量的末尾添加元素,如`vector_name.push_back(value)`。 - 索引...

    关于Golang中for-loop与goroutine的问题详解

    这个问题看似简单,但在并发环境下很容易忽略其复杂性。 #### 问题描述 问题出现在一段代码中,该代码试图遍历一个切片,并为每个元素启动一个新的goroutine。具体来看,这段代码如下: ```go for i := 0; i (rf....

    JSON NET For Unity 1.4.0

    3. **灵活性**:JSON.NET支持多种自定义序列化选项,如忽略特定字段、自定义日期格式、处理循环引用等。这使得开发人员可以灵活地控制序列化过程,以满足项目的具体需求。 4. **高性能**:JSON.NET以其高效的性能而...

    A BEAM ELEMENT FOR SEISMIC DAMAGE ANALYSIS

    - **小变形假设**:简化了数学建模,使问题更容易求解。 - **忽略剪切变形**:对于长细比较大的梁来说,剪切变形通常较小,因此可以被忽略,从而进一步简化模型。 #### 3. 轴向行为与弯矩行为的解耦 轴向行为被...

    The_0x10_Best_Questions_for_Would-be_Embedded_Programmers

    - **目的**:考察候选人对C语言标准的理解程度,尤其是那些容易忽略但又非常重要的细节。 - **示例问题**:“C语言中的预处理指令如何工作?”“宏定义与函数定义有何不同?” **2. 内存管理** - **目的**:测试...

    容易被忽略的Python内置类型

    当我们使用for循环遍历range对象时,我们实际上是调用了range的__iter__方法,使range对象自身成为可迭代对象。 - range对象可以用于生成一系列数字,通常用于循环控制。它在内存中占用资源较少,因为它仅保存起始...

    7个简单但棘手的JavaScript面试问题.pdf

    这是因为在 `for` 循环中,有一个容易忽略的分号 `;`,它创建了一个空语句。空语句是不做任何事情的空语句。`for()` 在空语句上进行 4 次迭代(不执行任何操作),而忽略实际将项目推入数组的块 `{numbers.push(i + ...

    想成为嵌入式程序员应知道的16个基本问题.doc

    **问题1:** 定义一个常量 `SECONDS_PER_YEAR` 来表示一年有多少秒(忽略闰年问题)。 - **答案示例:** `#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL` - **解析:** 这个题目主要考察了以下几个方面: - 对 `...

    2021年电大C语言程序设计形成性考核册答案.doc

    解释:在C语言中,for循环可以被用来解决循环次数已知的问题。 16. 在下面循环w语句中内层循环体S语句执行次数为n(n+1)/2。 解释:在C语言中,循环体的执行次数可以通过数学公式来计算。 17. 在下面do循环语句中,...

    JavaScript_开发者经常忽略或误用的七个基础知识点.

    以下便是七个容易被忽略或误用的JavaScript基础知识点: 1. **正则表达式中的全局标志位 /g 和 /i** - 在`String.prototype.replace`方法中,如果不使用全局标志位 `/g`,只会替换第一个匹配的子串。例如: ```...

    C语言经典问题罗列

    - **问题描述**:使用预处理指令`#define`声明一个常数,用来表示一年中有多少秒,忽略闰年的情况。 - **解决方案**: ```c #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL ``` - **解释**: - `#define`是...

    Algorithms For Programmers- Ideas And Source Code

    这部分内容揭示了程序员容易忽视的CPU指令,这些指令虽然不常用,但在特定场景下却能带来显著的性能提升。 ### 二、排列算法 #### 2.1 Revbin排列 Revbin排列是一种特殊的位操作,用于将数据重新排列以满足特定的...

    C语言教学中学生常见问题研究.pdf

    例如,学生可能不清楚if语句的嵌套规则,或是在使用for和while循环时控制条件不明确,导致程序逻辑错误。 数组与指针也是学生经常出错的知识点。数组的边界问题和指针的运算规则是学生容易混淆的地方。学生在学习...

Global site tag (gtag.js) - Google Analytics