Je suis capable de trier avec ce code ci-dessous dans l'ordre croissant, mais en raison de l'unité unique et du double chiffre (des moyens 9, 19,5, 12), il ne commande pas de trier en conséquence
Ceci est la table dynamique que je dois valider l'ordre croissant et décroissant. p> sortie p> Comment puis-je corriger l'ordre de tri avec célibataire et Double numéro unitaire. P> P>
3 Réponses :
La comparaison est faite à cette ligne inadorder pour modifier l'ordre de tri de Ascending pour descendre, il vous suffit de modifier Comme commenté par d'autres, inonder à la valeur numérique, vous devrez convertir les chaînes en chiffres. Vous pouvez le faire en modifiant ce qui précède sur: p> > code> vers << / CODE> P>
Merci mais maintenant j'ai un problème avec un numéro unitaire simple et double
Convertissez la matrice de chaîne en une matrice entier et vous pouvez appliquer n'importe quel algorithme pour trier le tableau.
int arr []= new int[strArray.length];
for (int i = 0; i < strArray.length; i++) {
arr[i] = Integer.parseInt(strArray[i]);
}
for (int i = 0; i < arr.length; i++) {
for (int j = i + 1; j < arr.length; j++) {
if (arr[i]>arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
Où voulez-vous trier le tableau de chaîne y mettre là-bas? Il n'y a rien de spécial à dire.
Puisque vous avez déjà la liste de l'ordre d'accent, le moyen le plus rapide d'inverser la liste, voir ici: Liste de réseau inversé
Pour trier dans la commande décroissante, les valeurs de chaîne doivent être converties en tiers ( Supposez que le type entier peut contenir la valeur de la valeur), vous pouvez simplement faire: P>
// convert the array to list
List<String> strList = Arrays.asList(strArray);
// sort the list in descending order
Collections.sort(strList, (a, b) -> Integer.parseInt(a) > Integer.parseInt(b) ? -1 : 1);
Vous triez en fonction des cordes pas des chiffres. Si vous souhaitez trier par une valeur numérique, vous devrez d'abord convertir les chaînes en chiffres.
@JEFFC Comment puis-je y parvenir?
int i = integer.parseint (tritedlist); Où devrais-je placer? Est correct? Je reçois cette erreur "la méthode parseint (String) dans le type Entier n'est pas applicable pour les arguments (ArrayList)"