Détermine si le tableau de la liste est triée

J'ai besoin d'estimer si le tableau de la liste est triée (ne pas trier).

Quand les Chaînes sont triés, ils sont dans l'ordre alphabétique.
J'essaie d'utiliser compareTo() méthode pour déterminer la corde sur laquelle vient en premier

Et retourne true si la liste de tableau est trié, sinon false.

Code:

public boolean isSorted()
{
    boolean sorted = true;        
    for (int i = 1; i < list.size(); i++) {
        if (list.get(i-1).compareTo(list.get(i)) != 1) sorted = false;
    }

    return sorted;
}

Facile de test:

    ArrayList<String> animals = new ArrayList<String>();
    ArrayListMethods zoo = new ArrayListMethods(animals); 
    animals.add("ape");
    animals.add("dog");
    animals.add("zebra");

    //test isSorted
    System.out.println(zoo.isSorted());
    System.out.println("Expected: true");

    animals.add("cat");
    System.out.println(zoo.isSorted());
    System.out.println("Expected: false");

    animals.remove("cat");
    animals.add(0,"cat");
    System.out.println(zoo.isSorted());
    System.out.println("Expected: false");

    **Output:**
    false
    Expected: true
    false
    Expected: false
    false
    Expected: false

Facile, ce test ne montre que 1/3 couverture.

Comment résoudre ce problème.

comment pouvez-vous déterminer si la liste est triée par une simple vérification de seulement 2 éléments? si ces 2 éléments ont été dans le tri, mais d'autres ne le sont pas?

OriginalL'auteur nazar_art | 2013-07-06