リストを逆順にする #
リスト内の要素を逆順にする方法についてを示す。
Javaではライブラリjava.util.Collectionsに、リスト内の要素を逆にするメソッド**reverse()**があるので、それを利用する。
public static void reverse(List<?> list)
実行例を以下に示す。
import java.util.ArrayList;
import java.util.List;
import java.util.Collections;
class Main{
public static void main(String args[]){
List<Integer> l = new ArrayList<Integer>();
l.add(1);
l.add(3);
l.add(-2);
l.add(100);
for(int i=0;i<l.size();i++){
System.out.print(l.get(i) + " ");
}
System.out.println();
Collections.reverse(l);
for(int i=0;i<l.size();i++){
System.out.print(l.get(i) + " ");
}
}
}
実行結果
> java Main
1 3 -2 100
100 -2 3 1
Pythonではリストをソートする関数は以下の2つがある。
- 組み込み関数reversed()
- リストの関数reverse()
組み込み関数のreversed関数は引数に受け取ったリスト内の要素を逆順にしたイテレータを返す。しかし、イテレータのままでは表示ができないので、リストとして表示するにはlist()でリストにする必要がある。また、reversed関数を実行してもリスト自体の順番は変わらない。
リスト型のreverse関数は実行するとリストの順番を逆にするが、返り値は何もない(None)になるので注意。実行した後再度リストを表示すると逆順になっている。
>>> a=[1,9,8,7,6,5,3,2]
>>>
>>> reversed(a) # reversedの返り値(=イテレータ)をそのまま出力すると以下のようになる
<list_reverseiterator object at 0x000002096F480668>
>>>
>>> list(reversed(a)) #reversedの返り値をリスト化する
[2, 3, 5, 6, 7, 8, 9, 1]
>>>
>>> a # reversedを実行しても元のリストの順番は変わらない
[1, 9, 8, 7, 6, 5, 3, 2]
>>>
>>> a.reverse()
>>> a
[2, 3, 5, 6, 7, 8, 9, 1]
>>>