Java 如何删除arraylist的最后一个元素
我正在尝试每10分钟删除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() {
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可用。