我想使用可用的方法反转java.util.LinkedList<Integer>
查看提供的方法和Iterators
我看不到以下选项:
int i = list.size();
int pos = 0;
while(i-- > 1){
Integer n = list.removeLast();
list.add(pos++, n);
}
但肯定必须有更好的方法。我的意思是修改迭代器之外的列表并不是一个好主意,但我无法看到如何在这里使用它而不必创建新列表。
有没有更好的办法?
答案 0 :(得分:17)
使用import java.util.Collections;
Collections.reverse(list);
答案 1 :(得分:2)
答案 2 :(得分:2)
有一种api方法。
Collections.reverse(yourList);
请参阅http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#reverse%28java.util.List%29。
如果由于某种原因你想自己做,这似乎是最好的方法:
List<T> reversed = new LinkedList<T>();
while(!yourList.isEmpty()) reversed.add(yourList.removeLast());
答案 3 :(得分:0)
我们可以通过这些方式在java中反向链接列表
使用集合 - 我们可以借助集合的 reverse() 方法在 Java 中反转列表
LinkedList<String> linkedList = new LinkedList<String>();
linkedList.add("Mumbai");
linkedList.add("Delhi");
//print linkedlist
//Reverses the order of the elements in the specified list.
Collections.reverse(linkedList);
使用 List.set() 方法 我们将首先交换 list 的元素到 end 。所以使用下面的逻辑
for(int i = 0, mid = list.size()/2, j = list.size() - 1; i < mid; i++, j--)
list.set(i, list.set(j, list.get(i)));//swap element
}