这样写为什么会越界???!帮忙看看^_^

04-09-06 Javalga

  public List getRangedData(NumberWrap isEnd) {
    List returnList = new ArrayList();
       for (int i = 0; i <lineCountPerPage; i++) {
      returnList.add(i, realTimeList.get(i + (pageNum * lineCountPerPage - lineCountPerPage) + 1));
}

<p class="indent">

大家帮忙看看。是不是我的逻辑有问题啊!

List test=XXX.getRangedData(isEnd)
System.out.print(test.size());
<p class="indent">

提示:
java.lang.ArrayIndexOutOfBoundsException
这是为什么啊?

mcg
2004-09-06 19:17
:)

Azure_2003
2004-09-07 09:17
下面的地方越界了:

realTimeList.get(i + (pageNum * lineCountPerPage - lineCountPerPage) + 1)
<p class="indent">

realTimeList里面没有

i + (pageNum * lineCountPerPage - lineCountPerPage) + 1
<p class="indent">

这么多的元素

Javalga
2004-09-07 09:19
恩,问题好象就在这里!先谢谢了!

可我想不出什么好办法,老兄有没有什么好的建议!!!!!!
怎么改改!

SportsBaby1980
2004-09-07 09:21
问题应该出在:realTimeList
realTimeList 这个应该是一个List

ArrayIndexOutOfBoundsException
的也该是她
很明显 i + (pageNum * lineCountPerPage - lineCountPerPage) + 1
你的这个表达式不正确





SportsBaby1980
2004-09-07 09:22
你的realTimeList
向里面放数据的逻辑呢?
没放入的逻辑
就没拿出的逻辑

Javalga
2004-09-07 09:24
恩,我也看见问题了 谢谢楼上2位了。
如果realtimelist没有那么多元素。我能不能在没有的位置上给插上空值???

还有什么好办法吗?

Javalga
2004-09-07 09:27
我是从库里整段取的,因为不能分段取。
存入realtimelist我是整个存进去的! 问题就在这里。
可我想不出好的逻辑,处理这个问题!

Javalga
2004-09-07 09:29
真郁闷!

SportsBaby1980
2004-09-07 09:34
可以换个计算的方式哪

只要能够完成功能就行

SportsBaby1980
2004-09-07 09:35
把你那个方法的功能
讲一下

顺便把其中的一些 容器的数据的作用讲一下

Javalga
2004-09-07 09:47
就是用于分页显示用的。

每页显示20条,也可以是40条^^^^
比如现在库里有100条记录
把数据存入realtimelist

当我要求每页显示20条的时候:显示完成20条后自动刷新,显示后边的记录
所以我从容器里取的时候只能一段一段取。

我是不是差一个判断?如果表里的记录小于lineCountPerPage的时候该怎么做?
兄台 还有没有更好的主意???
请指点一二 :)

Javalga
2004-09-07 09:48
顺便指点一下,看看我的逻辑正取与否

Javalga
2004-09-07 09:50
我又想了想,觉得我的逻辑还有问题!
还有没考虑到的问题 有点晕了

SportsBaby1980
2004-09-07 10:07
计算数据的边界

//每页显示的条数
  private int linePerPage = 10;
//所有的页数 这个需要计算
  private int pages;

//records 这个是所有的记录容器
    int begin = (page-1)*linePerPage;
    for(int i=0;i<linePerPage;i++){
      returnRecords.add(records.get(begin+i));
    }
//还需要判断最后一页的情况

<p class="indent">

猜你喜欢
2Go 1 2 下一页