状況は私が機能を持っており、それが呼び出してArrays.sort
指定された配列をソートします。Arrays.sort
両方の文字列を並べ替えることができますし、長い間、私の代わりに2の1人の署名を使用したいString[] array
とlong[] array
。
私のような何かを試してみたComparable[]
、それが一致しませんがlong[]
。私はまた、変更しようとしたlong
のをLong
。しかし、ボクシングとアンボクシングのプロセスが大幅にソートを鈍化しています。
タイプがある場合、私は疑問に思ってだから私はそれらの両方が一致して指定することができますか?または、一般的に、すべてのサポートされているタイプに一致しますかArrays.sort
?
短い答えはありません何もできませんので、。
Comparable
オブジェクト/クラスシステムのインタフェースと一部です。プリミティブは、のようなlong
、そのシステムの一部のみをそのボックス化変異体ではありませんLong
。
彼らはまた、唯一のないプリミティブに、クラスに適用することができますので、残念ながら、あなたも、ジェネリックを使用してこの問題を解決することはできません(参照ではないJavaのジェネリックサポートプリミティブ型を行うのはなぜ?)。
そうまでプロジェクトヴァルハラ(値型)のリリース、あなたはすべての8つのプリミティブのハードコードされた変種を提供する必要があります(short
、int
、long
、byte
、char
、float
、double
、boolean
あなたはオートボクシングを避けたい場合)、決して周りにはありません。
Java APIは、あまりにも、これを行う必要があります。あなたはのオーバーロードメソッド参照Arrays#sort
関連するすべてのプリミティブおよびクラスのための1つの一般的な過負荷のために。そのからのドキュメント:
sort(byte[] a)
sort(char[] a)
sort(double[] a)
sort(float[] a)
sort(int[] a)
sort(long[] a)
sort(short[] a)
sort(Object[] a)
sort(T[] a, Comparator<? super T> c)