web-dev-qa-db-ja.com

Javaで文字列のArrayListをソートするにはどうすればよいですか?

Stringにランダムに配置されるArrayListsがあります。

private ArrayList<String> teamsName = new ArrayList<String>();
String[] helper; 

例えば:

teamsName.add(helper[0]) where helper[0] = "dragon";   
teamsName.add(helper[1]) where helper[1] = "zebra";   
teamsName.add(helper[2]) where helper[2] = "tigers" // and so forth up to about 150 strings.

入力を制御できないという事実(つまり、ArrayListに入力される文字列はランダムです;ゼブラまたはドラゴンは任意の順序です)で、ArrayListが入力でいっぱいになったら、最初の入力をアルファベット順に並べ替えるにはどうすればよいですか?

teamsName[0] 結構です;並べ替えteamsName[1 to teamsName.size]アルファベット順。

29
antz
Collections.sort(teamsName.subList(1, teamsName.size()));

上記のコードは、ソートされた元のリストの実際のサブリストを反映します。

36
Juvanis

Collections#sort メソッドを確認してください。これにより、自然な順序に従ってリストが自動的にソートされます。 List#subList メソッドを使用して、取得した各サブリストにこのメソッドを適用できます。

private List<String> teamsName = new ArrayList<String>();
List<String> subList = teamsName.subList(1, teamsName.size());
Collections.sort(subList);
10
Rohit Jain

Collections.sort(List<T> list) を見てください。

最初の要素を削除し、リストを並べ替えてから再度追加するだけです。

5
npinti

helper[]配列を直接:

Java.util.Arrays.sort(helper, 1, helper.length);

配列をインデックス1から最後まで並べ替えます。インデックス0の最初のアイテムをそのままにします。

Arrays.sort(Object [] a、int fromIndex、int toIndex) を参照してください

5
petrsyn

リスト値を自動的に順序付けるTreeSetを使用できます。

import Java.util.Iterator;
import Java.util.TreeSet;

public class TreeSetExample {

    public static void main(String[] args) {
        System.out.println("Tree Set Example!\n");

        TreeSet <String>tree = new TreeSet<String>();
        tree.add("aaa");
        tree.add("acbbb");
        tree.add("aab");
        tree.add("c");
        tree.add("a");

        Iterator iterator;
        iterator = tree.iterator();

        System.out.print("Tree set data: ");

        //Displaying the Tree set data
        while (iterator.hasNext()){
            System.out.print(iterator.next() + " ");
        }
    }

}

最後に「a」を追加しますが、最後の要素は「c」でなければなりません。

2
katsu