どうも、ちょげ(@chogetarou)です。
リスト(List)を逆順にソートする方法を紹介します。
方法
リスト(List)を逆順にソートする方法は、2つあります。
Collections.reverse()
ひとつは、Collections.reverse()を使う方法です。
まず、Collectionsをインポートします。
import java.util.Collections;
次に、Collectionsからreverse()を呼び出します。
Collections.reverse()の引数にリストを指定します。
//list=対象のリスト
Collections.reverse(list);
上記のCollections.reverse()は、引数のリスト(List)を逆順にソートします。
使用例
import java.util.Collections;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<Integer> nums = new ArrayList<Integer>(5);
nums.add(1);
nums.add(2);
nums.add(3);
nums.add(4);
nums.add(5);
Collections.reverse(nums);
System.out.println(nums);
}
}
出力:
[5, 4, 3, 2, 1]
for文
もうひとつは、for文を使う方法です。
まず、for文をリスト(List)の長さでループします。
次に、ループ処理で、リストからadd()を呼び出します。
add()の第1引数にループ変数を指定し、第2引数でリストからremove()を呼び出します。
そして、remove()の引数にリストの末尾のインデックスを指定します。
//list=対象のリスト
for (int i = 0, j = list.size() -1; i < j; i++) {
list.add(i, list.remove(j));
}
上記のfor文は、ループしたリスト(List)を逆順にソートします。
使用例
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws Exception {
ArrayList<Integer> nums = new ArrayList<Integer>(5);
nums.add(1);
nums.add(2);
nums.add(3);
nums.add(4);
nums.add(5);
for (int i = 0, j = nums.size() -1; i < j; i++) {
nums.add(i, nums.remove(j));
}
System.out.println(nums);
}
}
出力:
[5, 4, 3, 2, 1]
まとめ
リスト(List)を逆順にソートする方法は、次の2つです。
- Collections.reverse()を使う方法
Collections.reverse(list);
- for文を使う方法
コメント