Java 删除Arraylist中的所有项以保留一个
在发布这篇文章之前,我做了一些研究,但我还没有完全掌握它。基本上,我的Arraylist中有4项: 香蕉、桔子、苹果和菠萝Java 删除Arraylist中的所有项以保留一个,java,android,arraylist,Java,Android,Arraylist,在发布这篇文章之前,我做了一些研究,但我还没有完全掌握它。基本上,我的Arraylist中有4项: 香蕉、桔子、苹果和菠萝 ArrayList<String> fruitList = new ArrayList<>(); addItems(){ fruitList.add("Banana"); fruitList.add("Oranges"); fruitList.add("Apples"); fruitList.add("Pineap
ArrayList<String> fruitList = new ArrayList<>();
addItems(){
fruitList.add("Banana");
fruitList.add("Oranges");
fruitList.add("Apples");
fruitList.add("Pineapples");
}
ArrayList水果列表=新的ArrayList();
附加项(){
水果列表。添加(“香蕉”);
水果列表。添加(“橙子”);
水果列表。添加(“苹果”);
水果列表。添加(“菠萝”);
}
我只想和一个人呆在一起。这就是我迄今为止所尝试的:
for (int i = 0; i <= fruitList.size() - 1; i++) {
fruitList.remove(i);
}
for(int i=0;i删除除第一项以外的所有项目:
for (int i = fruitList.size() - 1; i > 0 ; i--) {
fruitList.remove(i);
}
向后迭代,使索引与不断变化的列表大小同步。
如果您这样做:
int size = fruitList.size();
for (int i = 0; i < size - 1; i++) {
fruitList.remove(0);
}
int size=fruitList.size();
对于(int i=0;i
您将删除除最后一项之外的所有项,因为在每次迭代中,您都会删除第一项,直到只有一项不会被删除。这里的问题是索引从列表的开头开始上升,而列表的大小却在缩小:
在size()处开始i
-1
然后迭代到1。由于您正在删除元素,第二个元素将变为第一个元素,然后您将递增i
并跳过一个元素。此外,由于您使用时循环会迭代整个列表,因此您可能需要学习使用调试器。请自便。如果您仍然存在问题,请之后,请将您的问题更具体地说明您需要什么帮助。应该保留哪一个?
for (int i = 0; i <= fruitList.size() - 1; i++) {
fruitList.remove(i);
}
fruitList.subList(1, fruitList.size()).clear();
System.out.println(fruitList);
// prints [Banana]