Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/187.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何删除arraylist的最后一个元素_Java_Android - Fatal编程技术网

Java 如何删除arraylist的最后一个元素

Java 如何删除arraylist的最后一个元素,java,android,Java,Android,我正在尝试每10分钟删除arraylist的最后一个元素。 我正在使用此代码来执行此操作: final Handler handler = new Handler(); Timer timer = new Timer(); TimerTask doAsynchronousTask = new TimerTask() { @Override public void run() { handler.post(new Runnable() {

我正在尝试每10分钟删除
arraylist
的最后一个元素。 我正在使用此代码来执行此操作:

final Handler handler = new Handler();
Timer timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {       
    @Override
    public void run() {
        handler.post(new Runnable() {
            public void run() {       
               array.remove(array.size() -1);   //array is my ArrayList object

            }
        });
    }
};

timer.schedule(doAsynchronousTask, 0, 600000); //execute in every 10 minutes

但是它给出了
IndexOutOfBoundsException
。有人能解决这个问题吗。

你得到IndexOutOfBounds是因为你试图删除一个不存在的项目,所以你应该在删除时执行检查,如果没有任何内容,就停止删除:

if(array.size() > 0){
    array.remove(array.size() -1);
}

您正在获取IndexOutOfBounds,因为您正在尝试删除不存在的项,因此您应该对删除进行检查,以在没有任何项的情况下停止删除:

if(array.size() > 0){
    array.remove(array.size() -1);
}

正如@TheAndroidDev所说,您有一个空数组。 如何使用Rx,类似以下内容:

Observable.from(array)
            .interval(10, TimeUnit.MINUTES)
            .map(i -> array.size() > 0 ? array.remove(array.size() - 1) : null)
            .take(array.size())
            .subscribe(integer -> {
                // Do something with the integer or type you use
            });

正如@TheAndroidDev所说,您有一个空数组。 如何使用Rx,类似以下内容:

Observable.from(array)
            .interval(10, TimeUnit.MINUTES)
            .map(i -> array.size() > 0 ? array.remove(array.size() - 1) : null)
            .take(array.size())
            .subscribe(integer -> {
                // Do something with the integer or type you use
            });

你的阵列有任何元素吗?@MuratK。是的,它包含大约5-6个元素。它从一开始就有吗?解决方案很明显异常没有在消息中为您提供索引receive?我想这应该是
-1
。这显然应该是在一个条件。。。以下是线程“XXX”java.lang.ArrayIndexOutOfBoundsException中您应该收到的消息:-1您的数组是否有任何元素?@MuratK。是的,它包含大约5-6个元素。它从一开始就有吗?解决方案很明显异常没有在消息中为您提供索引receive?我想这应该是
-1
。这显然应该是在一个条件。。。以下是线程“XXX”java.lang.ArrayIndexOutOfBoundsException中您应该收到的
异常消息:
-1请注意,您使用的API在大量android设备上不受支持。我认为这是因为Android 5可用。请注意,您使用的API在大量Android设备上不受支持。我认为这是因为Android 5可用。