配列及び ArrayList クラスとソート

import java.io.*;
import java.util.*;

public class Test {
	public static void main(String args[]) throws IOException
	{
				// データの入力
		int n = 5; 
		Scanner sc = new Scanner(System.in);
		Integer v[] = new Integer [n];
//		ArrayList <Integer> v = new ArrayList <Integer> ();
		for (int i1 = 0; i1 < n; i1++)
			v[i1] = sc.nextInt();
//			v.add(sc.nextInt());   // ArrayListの場合
				// ソート(昇順)
		Arrays.sort(v);
//		Collections.sort(v);   // ArrayListの場合
				// 結果の出力
		for (int i1 = 0; i1 < n; i1++)
			System.out.print(" " + v[i1]);
		System.out.println();
//		System.out.println(v);   // ArrayListの場合は,この1行でも可
				// ソート(降順)
//		Comparator<Integer> cp = new Comparator<Integer>() {
//			@Override   // 以下,スーパークラスのメソッドの書き直し
//			public int compare(Integer ar1, Integer ar2) {
//				return Integer.valueOf(ar2).compareTo(Integer.valueOf(ar1));
//			}
//		};
				// 次の行とCompクラスの定義の代わりに上の6行でも良い
		Comp cp = new Comp();
		Arrays.sort(v, cp);
//		Collections.sort(v, cp);   // ArrayListの場合
				// 結果の出力
		for (int i1 = 0; i1 < n; i1++)
			System.out.print(" " + v[i1]);
		System.out.println();
//		System.out.println(v);   // ArrayListの場合は,この1行でも可
	}
}
		// Comparator
class Comp implements Comparator <Integer> {
	@Override   // 以下,スーパークラスのメソッドの書き直し
	public int compare (Integer ar1, Integer ar2)
	{
		return Integer.valueOf(ar2).compareTo(Integer.valueOf(ar1));
	}
}
		
(出力)
(配列の場合)

 1 2 23 40 90
 90 40 23 2 1

(ArrayList クラスの場合)

[1, 2, 23, 40, 90]
[90, 40, 23, 2, 1]