![](/img/trans.png)
[英]Iterate through arraylist and assign value for first and last value that fulfills requirement
[英]How to iterate from last to first an ArrayList?
我想知道是否可以從ArrayList的最后一個元素迭代到第一個元素,如果可以的話如何? 原因是因為我需要刪除添加到列表中的最后一個元素
雖然您總是可以使用索引來迭代ArrayList
,但是這樣
List<String> myList = new ArrayList<String>();
... add code to populate the list with some data...
for (int i = myList.size() - 1 ; i >= 0 ; i--) {
if (myList.get(i).equals("delete me")) {
myList.remove(i);
}
}
您最好使用ListIterator<T>
以便從ArrayList
中刪除項目:
ListIterator<String> listIter = myList.listIterator();
while (listIter.hasNext()) {
if (listIter.next().equals("delete me")) {
listIter.remove();
}
}
列表迭代器也可以用於向后迭代列表-像這樣:
ListIterator<String> listIter = myList.listIterator(myList.size());
while (listIter.hasPrevious()) {
String prev = listIter.previous();
// Do something with prev here
}
迭代器的初始索引應等於最后一個元素的索引+1。正如文檔所說:“對previous
的初始調用將返回具有指定索引減去1的元素。”
這是一種方法(您的原因是一個單獨的問題):
import java.util.*;
List<String> list = new ArrayList<String>();
list.add("a");
list.add("b");
list.add("c");
ListIterator<String> iter = list.listIterator(list.size());
while (iter.hasPrevious()) {
String s = iter.previous();
System.out.println(s);
}
如果只需要刪除數組列表的最后一個元素,則可以執行以下操作:
arrayList.remove(arrayList.size()-1);
如果要從頭到尾刪除所有元素,可以使用以下for循環:
for(int i = arraList.size()-1; i >= 0; i--)
{
arrayList.remove(i);
}
有關數組列表的更多信息,可以轉到此處: http : //www.tutorialspoint.com/java/java_arraylist_class.htm
希望這可以幫助。
ArrayList aList = new ArrayList();
aList.add(1);
aList.add(2);
aList.add(3);
Collections.reverse(aList);
Iterator iter = aList.iterator();
while(iter.hasNext()){
iter.next();
iter.remove();//remove an element
break;//break from the loop or something else
}
List<String> names = ....
int count= names.getSize();
Iterator<String> i = names.iterator();
while (i.hasNext()) {
String s = i.next(); // must be called before you can call i.remove()
// Do something
if (count==1)
i.remove();
count--;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.