どのように私は長い間、両方の文字列との一致タイプを指定することができますか?

sRaw:

状況は私が機能を持っており、それが呼び出してArrays.sort指定された配列をソートします。Arrays.sort両方の文字列を並べ替えることができますし、長い間、私の代わりに2の1人の署名を使用したいString[] arraylong[] array

私のような何かを試してみたComparable[]、それが一致しませんがlong[]私はまた、変更しようとしたlongのをLongしかし、ボクシングとアンボクシングのプロセスが大幅にソートを鈍化しています。

タイプがある場合、私は疑問に思ってだから私はそれらの両方が一致して指定することができますか?または、一般的に、すべてのサポートされているタイプに一致しますかArrays.sort

Zabuza:

短い答えはありません何もできませんので、。

Comparableオブジェクト/クラスシステムのインタフェースと一部です。プリミティブは、のようなlong、そのシステムの一部のみをそのボックス化変異体ではありませんLong

彼らはまた、唯一のないプリミティブに、クラスに適用することができますので、残念ながら、あなたも、ジェネリックを使用してこの問題を解決することはできません(参照ではないJavaのジェネリックサポートプリミティブ型を行うのはなぜ?)。

そうまでプロジェクトヴァルハラ(値型)のリリース、あなたはすべての8つのプリミティブのハードコードされた変種を提供する必要があります(shortintlongbytecharfloatdoublebooleanあなたはオートボクシングを避けたい場合)、決して周りにはありません。

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)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=189957&siteId=1