Javaでオブジェクトコレクションを逆にする方法

この例では、<> が Collections: class: Collections.reverse() です。オブジェクトのコレクションとして LinkedList を選択しました。同じメソッドは、java.util.Collectionです。LinkedList インスタンスをパラメーターとして渡す必要があります。このメソッドは、リスト内の項目の順序を逆にするために使用されます。

Example:

このコードは、ArrayList、LinkedList、および Vector.

import java.util.Collections;
import java.util.LinkedList;

public class inverse_collection {

public static void main(String[] args) {

LinkedList llist = new LinkedList();

llist.add("1");
llist.add("2");
llist.add("3");
llist.add("4");

System.out.println("反転前: "+llist);

Collections.reverse(llist);

System.out.println("反転後: "+llist);
}
}
結果:

反転前: [1, 2, 3, 4]
反転後: [4, 3, 2, 1]
java.util.Set および java.util.Map から継承するコレクションは、Collections.reverse() メソッドではサポートされていません。ただし、部分的な解決策は可能です:
  • Set インターフェイスのコレクションを使用して ArrayList のインスタンスを作成するか、Map
  • ArrayList の Collections.reverse() メソッドを適用します
  • Items を元のコレクションにコピーして戻すことはできません。何のため。Set インターフェイスは挿入順序を保証しないため
注: Map インターフェイスはキー/値のハッシュ テーブルです。つまり、要素の順序が保たれないため、結果をMapを実装するコレクションにコピーせずに、キーまたは値のいずれかを反転することしか選択できません.

TreeSetの例:

import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import java.util.TreeSet;

public class Intervert {

public static void main(String[] args) {

// TreeSet
TreeSet tset = new TreeSet();

// treesetに要素を追加
tset.add("a");
tset.add("b");
tset.add("c");

イテレータイテレータ = tset.iterator();

// TreeSet の表示
System.out.println("Treeset elements in ascending order: ");
while (iterator.hasNext()){
System.out.println(iterator.next());
}

List list = new ArrayList(tset);

Collections.reverse(list);

// 値を逆表示
System.out.println("The elements of treeset in reverse order: ");
for(String s:list)
System.out.println(s);
}
}
出力:

Treeset 要素を昇順で表示: 
a
b
c
treeset 要素を逆の順序で表示:
c
b
a