web-dev-qa-db-fra.com

Comment trier une liste de tableaux de chaînes en Java?

J'ai Strings qui sont placés dans un ArrayList au hasard.

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

Par exemple:

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.

Étant donné que vous ne pouvez pas contrôler les entrées (c'est-à-dire que la chaîne qui entre dans la liste de tableaux est aléatoire; zèbre ou dragon dans n'importe quel ordre), une fois que la liste de tableaux est remplie d'entrées, comment puis-je les trier par ordre alphabétique en excluant la première?

teamsName[0] c'est bien; Trier teamsName[1 to teamsName.size] par ordre alphabétique.

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

Le code ci-dessus reflétera le sous-liste réelle de votre liste d'origine triée.

36
Juvanis

Vérifier Collections#sort méthode. Cela trie automatiquement votre liste selon un ordre naturel. Vous pouvez appliquer cette méthode à chaque sous-liste obtenue à l'aide de List#subList méthode.

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

Jetez un oeil à Collections.sort(List<T> list) .

Vous pouvez simplement supprimer le premier élément, trier la liste, puis l'ajouter à nouveau.

5
npinti

Vous pouvez trier le helper[] tableau directement:

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

Trie le tableau de l'index 1 à la fin. Ne modifie pas le premier élément de l'index 0.

Voir Arrays.sort (Object [] a, int fromIndex, int toIndex)

5
petrsyn

Vous pouvez utiliser TreeSet qui trie automatiquement les valeurs de liste:

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() + " ");
        }
    }

}

J'ajoute enfin "a" mais le dernier élément doit être "c".

2
katsu