java - 如何左移 ArrayList

标签 java android arraylist

我正在使用 ArrayList 来保存对象的历史记录。我使用 .add 方法添加的每个新对象,例如:

if(event.getAction() == MotionEvent.ACTION_UP)
{
    if(currentWord != null)
    {
        wordHist.add(currentWord);
    }

    if(wordHist.size() > WORDHIST_MAX_COUNT)
    {
        wordHist.remove(0);
    }
}

但是我不希望这个无限增长,而是限制在某个值。如果它达到这个最大值,我希望最旧的对象(索引 0)被删除,其余的左移,所以以前的索引 1 现在是索引 0,等等。

如何做到这一点?

谢谢

最佳答案

ArrayList 在这种情况下并不是一个很好的选择,但它可以通过调用remove(0) 方法来完成。但是如果你想高效地做到这一点,链表会更好

(经过编辑以明确 LinkedList 通常并不比 ArrayList 好,但仅在这种情况下)

关于java - 如何左移 ArrayList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6223456/

相关文章:

javascript - PhoneGap javascript 引用问题

java - 调用 AWS API - 签名,身份验证 header - 在 android 中使用 OkHTTP

java - 我在java中有一个字符串表的数组列表,我想从这些表中删除空和空元素

java - 在 Swing 中添加组件的性能更高的顺序是什么

java - 使用 Java 进行 NAT 穿越

android - MPAndroidChart 设置中心垂直线

Java/从用户定义类的数组列表中搜索、修改和删除元素

java - 从一个 Realm 异步复制到另一个 Realm

java - 在 android 中使用 group by 和 content provider 进行计数

java - 反转 ArrayList 的顺序并合并两个 ArrayList