欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

对arraylist中size大小的问题,arraylistsize大小

来源: javaer 分享于  点击 743 次 点评:165

对arraylist中size大小的问题,arraylistsize大小


在做分页查询时,定义一个List实例,

private List<Users> users = new ArrayList<Users>();

然后将数据装载到users 里面,

private Users user; 
while(it.hasNext()){
    Object[] us = (Object[]) it.next();
    Users uss = new CheckSell(
            us[0]==null?"":ss[0].toString(),
            us[1]==null?"":ss[1].toString(),
            us[2]==null?"":ss[2].toString()
            );
    users.add(uss);
}

设置翻页后start和limit值:

List<Users> usersT;              
if((this.getStart()+2) < this.getTotalProperty()){
    usersT = users.subList(this.getStart(), this.getStart()+2);
}else{
    int limitT = this.getStart()+2;
    limitT = limitT - this.getTotalProperty();
    usersT = users.subList(this.getStart(), this.getStart()+2 - limitT);
}

发现系统报错:

java.lang.IndexOutOfBoundsException: toIndex = 3
    at java.util.ArrayList.subListRangeCheck(ArrayList.java:962)
    at java.util.ArrayList.subList(ArrayList.java:954)

其中toIndex = 3 ,这个我查了下,说是数组下界超标异常。
http://blog.163.com/wzx_dd/blog/static/19428507220121132315119/

我不大明白,检查了一下,并没检查出什么东西。于是我又看了这个函数subListRangeCheck,在类ArrayList中。于是发现:

if (toIndex > size)
    throw new IndexOutOfBoundsException("toIndex = " + toIndex);

size的定义是:

int size = elementData.length;

也就是List中元素个数。我只有3条数据,每页2条数据。在第一页时,正常,当toIndex =3的时候,就报出异常了。size的值应该一直是3才对。
这个问题很奇怪。

相关文章

    暂无相关文章

用户点评