sort

Javaをこれから再勉強しようと思っている。『Head First Java 第2版』のサンプルPDFを見たのをきっかけに、sortを少し調べたが、sortはArrayListクラスには存在せず、2つのクラスメソッドを使う。配列の場合java.util.Arrays.sort()で、コレクションの場合java.util.Collections.sort()を使う。以下、JavaPythonのサンプルコード。

import java.util.*;

class test {
    public static void main(String[] args) {
        String[] L = {"a", "c", "b"};
        java.util.Arrays.sort(L);
        for (String s : L) {
            System.out.println(s);
        }
    }
}

/* 実行結果 */
a
b
c
>>> L = ['a', 'c', 'b']
>>> L.sort()
>>> L
['a', 'b', 'c']

破壊的だが、Pythonのsorted()を実現したい場合はどうするのだろう?オリジナルをコピーしてからsort()するのだろうか?最近だいぶマシになってきたとはいえ、Javaのコードは狂気の沙汰としか思えない。パフォーマンス、信頼性は高いし、進化もC++より早いが、ちょっとしたことでも面倒すぎる。一度スクリプトを経験すると戻るのが辛い…。