`
yangzy666
  • 浏览: 20022 次
  • 性别: Icon_minigender_1
  • 来自: 东莞
社区版块
存档分类
最新评论

JAVA集合使用中出现的一个错误

阅读更多
今天工作时,由于粗心,犯了个错误,特此撰文自我鞭策.且看代码如下:
final int REPORT_PAGE_ROWS = 20;
//currentGroup 类型为ArrayList
if (currentGroup.size() % REPORT_PAGE_ROWS != 0) {
    for (int i = 0; i < REPORT_PAGE_ROWS - currentGroup.size() % REPORT_PAGE_ROWS; i++) {
      currentGroup.add(new WJContractUnitWasteTemp());//添加空对象
    }
}
不知大家看出上面代码的问题没有,反正最初我是看了半天都没发现.
比如,currentGroup本来大小为26,如果它不是20的倍数,则满足if语句的条件,执行循环,添加相应数量的空对象,直到能被20整除,即应该添加14个元素,变量i在0至14之间变化.但此段代码实际执行后只添加了7个,即最终currentGroup的大小为33.

最后发现是此段代码的原因:i < REPORT_PAGE_ROWS - currentGroup.size() % REPORT_PAGE_ROWS;
因为集合currentGroup大小本来就是在不断扩充,如果还用
REPORT_PAGE_ROWS - currentGroup.size() % REPORT_PAGE_ROWS
作为变量i的循环上限,肯定不能达到预期的目的.最后更正如下:
final int REPORT_PAGE_ROWS = 20;
int count = REPORT_PAGE_ROWS - currentGroup.size() % REPORT_PAGE_ROWS;
//currentGroup 类型为ArrayList
if (currentGroup.size() % REPORT_PAGE_ROWS != 0) {
    for (int i = 0; i < count; i++) {
      currentGroup.add(new WJContractUnitWasteTemp());//添加空对象
    }
}

希望能给大家一点点启示.
分享到:
评论

相关推荐

    Java集合框架及泛型

    Java集合框架是Java编程语言中一个非常重要的组成部分,它提供了一组高效的数据结构和操作这些数据结构的方法。泛型则是Java在J2SE 5.0版本引入的一个特性,极大地提高了代码的类型安全性和可读性。下面我们将深入...

    java集合类的全解

    Java集合框架是Java编程语言中处理数据结构的一个重要组成部分。它提供了一套标准的接口和实现来帮助开发者高效地存储、检索和操作对象。Java集合主要包括两大类型:`Collection` 和 `Map`。 #### 二、Collection...

    java不同对象及集合的多次复制

    - **clone()方法**:Java的Object类提供了一个`clone()`方法,但默认实现是浅拷贝。如果需要深拷贝,需要在每个需要复制的对象类中实现`Cloneable`接口并重写`clone()`方法。 - **构造函数**:通过对象的构造函数...

    java集合 框架 泛型

    Java集合框架是Java编程语言中一个至关重要的组成部分,它为数据存储和操作提供了丰富的类库。泛型是Java 5引入的一项创新特性,极大地增强了集合框架的安全性和效率。本讲解将深入探讨这两个主题,以及与之相关的...

    Java集合框架培训资料

    Java集合框架是Java编程语言中的核心组件之一,它为数据存储和管理提供了丰富的类和接口。这个培训资料将深入探讨Java集合框架的各个方面,帮助开发者更有效地利用这些工具。 首先,我们要了解Java集合框架的基本...

    java实验数组和集合

    在本实验的 Java 代码中,我们首先声明了一个大小为 10 的整型数组 `score`,用于存储十个评委的打分。然后,我们使用 `for` 循环遍历数组,并将用户输入的字符串转换为整数,并将其存储到数组中。 接下来,我们...

    JAVA应用实例集合

    通过实例,你可以看到如何定义一个类,如何在类中封装数据和行为,以及如何通过对象进行交互。 3. **继承与多态**:Java支持单继承和多态,这允许类之间的层次结构和代码复用。实例可能包含子类继承父类,以及覆盖...

    JAVA泛型集合

    Java泛型集合是Java编程语言中的一个重要特性,它在处理集合类时提供了类型安全和编译时检查。泛型引入的目的是为了消除在运行时进行类型转换的需要,同时允许在设计时就对数据类型进行约束,从而提高代码的可读性...

    MongoDB Java获取集合.pdf

    在这个例子中,我们看到一个名为 `MongoDBJDBC` 的 Java 类,它演示了如何连接到 MongoDB 服务器并获取集合。以下是关键步骤的详细解释: 1. **连接到 MongoDB 服务**: 使用 `MongoClient` 类的构造函数,传入 ...

    java中,list集合数据导出到excel表格通用工具类

    在Java编程中,将List集合数据导出到Excel表格是一个常见的需求,特别是在数据分析、报表生成或数据导出等场景。本实例提供了一个通用工具类,能够处理多种不同类型的对象集合,实现了最大化的通用性,使得开发者...

    Java API大集合

    它通常以文档形式呈现,详细解释了每一个类、接口、方法和常量的功能和用法,为开发者提供了全面的指南。"Java API大集合,很经典,学习java必备"这句话表明,这个集合不仅全面,而且具有权威性和实用性,是Java初学者...

    Java集合排序及java集合类详解.pdf

    在文档《Java集合排序及java集合类详解.pdf》中,虽然由于OCR扫描的原因,内容存在一些文字错误和漏识别,但可以推断该文档详细讲解了Java集合类的各个接口以及实现类的特点、用法以及它们之间的区别,并且详细介绍...

    Java集合框架.pdf

    Java集合框架是Java编程语言中用于存储和操作数据的接口和类的集合。它包含了多种数据结构,如列表(List)、集合(Set)、映射(Map)等。集合框架的目的是为了提供一套统一的集合操作方法,以降低编程时的复杂性,...

    java不同对象之间及集合的复制

    4. **集合复制**: 当需要复制一个集合到另一个集合时,Java提供了`Collection#copy`方法和`Arrays#copyOf`方法进行基本的复制,但这仅限于元素是不可变对象的情况。对于可变对象,需要进行深复制,可以使用`Stream` ...

    Java调用存储过程--传入集合参数

    在完成Java集合到Oracle数组的转换后,接下来是实际调用存储过程的过程。这通常通过`CallableStatement`接口完成,其中使用`setARRAY`方法将转换后的数组设置为参数。 ```java public static int updateADInfo...

    java电话本集合框架版

    在Java编程领域,电话本...分析和理解这些代码,可以帮助我们深入理解Java集合框架的应用以及如何构建一个实际的电话本应用程序。同时,这也是一个很好的实践机会,可以提升我们对面向对象设计、数据结构和算法的理解。

Global site tag (gtag.js) - Google Analytics