Java 在arrayList中,删除从末尾开始计数的n个元素
就像我的标题一样,这个方法询问有多少元素:Java 在arrayList中,删除从末尾开始计数的n个元素,java,arraylist,Java,Arraylist,就像我的标题一样,这个方法询问有多少元素: //delete elements from deleteFromEnd up to arrayList.size() index int deleteFromEnd; do { System.out.format("How many elements you want to delete, counting from end ( less then %d): ", arrayList.size());
//delete elements from deleteFromEnd up to arrayList.size() index
int deleteFromEnd;
do
{
System.out.format("How many elements you want to delete, counting from end ( less then %d): ", arrayList.size());
deleteFromEnd = scan.nextInt();
}while (deleteFromEnd > arrayList.size());
do
{
arrayList.remove(arrayList.size());
i++;
}while(i < deleteFromEnd);
然后我尝试删除这些元素:
//delete elements from deleteFromEnd up to arrayList.size() index
int deleteFromEnd;
do
{
System.out.format("How many elements you want to delete, counting from end ( less then %d): ", arrayList.size());
deleteFromEnd = scan.nextInt();
}while (deleteFromEnd > arrayList.size());
do
{
arrayList.remove(arrayList.size());
i++;
}while(i < deleteFromEnd);
任何想法,解决这个问题的最佳想法是什么?在Java数组中,索引从
0
开始,因此大小为n
的列表的最后一个索引是n-1
然而,有一个更好的方法。我们为要删除的范围获取一个子列表(它是原始列表上的视图,而不是副本),然后清除它
arrayList.subList(arrayList.size()-deleteFromEnd, arrayList.size()).clear();
arrayList.remove(arrayList.size()-1)代码>请不要忘记发布完整的错误消息和完整的示例来测试它。阅读,谢谢。remove
需要索引。索引基于0
。因此,第一个元素位于索引0
。最后一个是size-1
,而不是size
。检查一下。@Zabuza我没有收到任何错误,它根本不起作用,这就是我没有发布任何错误的原因。然后你需要更精确地解释到底发生了什么以及预期会发生什么。并给予充分的支持。“它不工作”没有帮助。这将清除0到arrayList.size()的所有元素-deleteFromEnd@ArnaultLePr埃沃斯特·科维莱克:是的,修正了。这真是个好主意,我读过关于子列表的文章,这真的很酷。这正是我想说的,但不知道怎么说,所以我用了loop:D谢谢你的帮助。