7

java.util.LinkedList<Integer>利用可能な方法を使用してを逆にしたい。
提供されているメソッドをIterators調べたところ、次以外のオプションが見つかりませんでした。

int i = list.size();  
int pos = 0;  
while(i-- > 1){  
     Integer n = list.removeLast();  
     list.add(pos++, n);          
} 

しかし、確かにもっと良い方法があるはずです。イテレータの外部でリストを変更するのは良い考えではありませんが、新しいリストを作成せずにここでリストを使用する方法を理解できませんでした。
もっと良い方法はありますか?

4

4 に答える 4

19

importjava.util.Collectionsを使用します。

Collections.reverse(list);
于 2012-04-23T09:28:37.227 に答える
3

そのための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());
于 2012-04-23T09:29:52.470 に答える
2

java.util.Collections.reverse(リストリスト)を参照してください

于 2012-04-23T09:29:06.293 に答える
0

これらの方法でJavaのLinkedlistを逆にすることができます

  1. コレクションの使用-コレクションの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);
    
  2. List.set()メソッドの使用リストの要素を最初から最後まで交換します。以下のロジックを使用するなど

        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
         }   
    

参照: LikedListの要素を逆にする方法

于 2021-02-11T17:38:40.817 に答える