2012-02-21 22 views
-1

Java/Androidの配列をアルファベット順でソートするにはどうすればよいですか? その後、私はListViewに順序付き配列を提供したいと思います。アルファベット順の配列の並べ替え

+7

〔は、Arrays.sort()](http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html# sort(java.lang.Object []))。 – cutchin

答えて

3

は、Arrays.sort()を参照してより複雑な分類するためのトリックを

http://docs.oracle.com/javase/6/docs/api/java/util/Arrays.html

+0

void \t sort(T [] a、Comparator c) 指定されたコンパレータによって引き起こされた順序に従ってオブジェクトの指定された配列をソートしますか? –

1

を行う必要がありComparator

例:

Arrays.sort(some_array, new Comparator<SomeObject>() { 
@Override 
public int compare(SomeObject entry1, SomeObject entry2) { 
    return entry1.getSomeData().compareTo(entry2.getSomeData()); 
} 

})。 (文字列のような)Comparableインタフェースを実装

0

オブジェクトが自然順序付けを持っている(そのcompareToメソッドで定義されている)ので、あなただけのArrays.sort()を使用することができます。

Arrays.sort(yourArrayOfComparables); 

それは、直接配列をソートし、することはありませんコピー。

あなたが考慮されていない、より具体的な並べ替えをしたい場合は、そのオブジェクトのコンパレータを「自然」を作成することができます:最初のオブジェクトは、オブジェクト自体はあるComparatorsComparables(のための

Comparator<MyObject> comp = new Comparator<MyObject>() { 
    public int compare(MyObject obj1, MyObject obj2) { 
     //Code here 
    } 
} 
Arrays.sort(yourArrayOfObjects, comp); 

ルール)は、最初のオブジェクトが2番目のオブジェクトよりも小さい場合は負を返し、反対の場合は正の値を返し、等しい場合は0を返します。

3

それだけで使用して行うことができる

Arrays.sort(myarray);