【问题标题】:Loop in arraylist在数组列表中循环
【发布时间】:2017-01-31 07:59:51
【问题描述】:

这是我的ArrayList

{10, 20, 30,40, 50, 60, 70, 80, 90, 100....1000}

我想在按钮点击时循环我的结果。

我希望在Button 的第一次点击中获得前 5 个结果。

然后同样自动下5个结果。

有什么办法可以做到吗?

for(int i=0 ;i<5; i++) {
   list = array.getJSONObject(i);
   fr.add(list.get("contact"));
 }

问题是我只得到前 5 个而不是下一个结果。

感谢您的帮助。

【问题讨论】:

  • 不是从 0 开始迭代,而是从 buttonClicks * 5 开始。不是在 5 处结束迭代,而是在 buttonClicks * 5 + 5
  • 因为你只循环前五个元素
  • 那么你期望得到什么结果?
  • 每次之后都需要从arraylist中删除前5项
  • @kouty 是的先生,我该怎么做。

标签: java android arraylist


【解决方案1】:

如果每次调用从索引 a 到索引 b 的方法时,要删除数组列表中的前 N ​​项,

您可以在每次按下该按钮时使用ArrayList.removeRange(int fromIndex, int toIndex)(但不要重复此操作)

或轻松使用ArrayList.subList(start, end).clear(); 完成相同的任务!

从这个列表中删除所有索引在之间的元素 fromIndex(包括)和 toIndex(不包括)。转移任何成功的 左边的元素(减少它们的索引)。这个调用缩短了 按 (toIndex - fromIndex) 元素列出。 (如果 toIndex==fromIndex,这 操作无效。)

阅读文档>http://docs.oracle.com/javase/6/docs/api/java/util/ArrayList.html#removeRange%28int,%20int%29

示例:

public void removeFistNItemsFromList(){

    for(int i=0 ;i<n; i++) {
     // add your items or do what ever you want!
    }
    myArray.subList(0, 4).clear(); // here from 0 to 4th index items will be removed and  list will be updated!
    System.out.println("MyArrayListNow:"+myArray);
}

每次点击后输出:

【讨论】:

    【解决方案2】:

    嗯,你总是试图阅读前 5 个元素,因此问题。您已阅读并从数组列表中删除元素的一个选项。但是更好的方法是保持鼠标点击的计数,在这种情况下,这是一个经典的分页问题,​​你可以获取接下来的 5 个元素,并且不会丢失 arraylist 中的数据。

    【讨论】:

      猜你喜欢
      • 2021-05-06
      • 2015-08-28
      • 1970-01-01
      • 2013-03-12
      • 2011-02-18
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多