Android tri un tableau
j'ai un tableau de chaîne composée d'un nom et d'un score. Je veux trier ce tableau par score. Problème est, étant donné que c'est un tableau de chaînes, les scores sont de chaînes de résultats dans 13,16,2,5,6 et pas 2,5,6,13,16. Je suis l'aide de ce code:
int spaceIndex;
String[][] scoreboard;
String[] playername;
String[] score;
int sbsize;
array1.add("Thomas" + ":" + 5);
array1.add("Blueb" + ":" + 6);
array1.add("James" + ":" + 16);
array1.add("Hleb" + ":" + 13);
array1.add("Sabbat" + ":" + 2);
sbsize = array1.size();
scoreboard = new String[sbsize][2];
playername = new String[sbsize];
score = new String[sbsize];
pos2 = new int[sbsize];
for (int i=0; i<array1.size(); i++)
{
spaceIndex = array1.get(i).indexOf(':');
scoreboard[i][0] = array1.get(i).substring(0, spaceIndex);
scoreboard[i][1] = array1.get(i).substring(spaceIndex+1, array1.get(i).length());
}
Arrays.sort(scoreboard, new Comparator<String[]>() {
@Override
public int compare(String[] entry1, String[] entry2) {
String time1 = entry1[1];
String time2 = entry2[1];
return time1.compareTo(time2);
}
});
Quelle est la solution?
Si c'est le score, pourquoi ne pas les stocker en entier? OK, même pas de magasin en entier, vous pouvez le convertir en entier et de les comparer.
nécessaire url de trier arry mkyong.com/java/how-to-sort-an-array-in-java
nécessaire url de trier arry mkyong.com/java/how-to-sort-an-array-in-java
OriginalL'auteur erdomester | 2011-06-03
Vous devez vous connecter pour publier un commentaire.
Jeter à l'int. Je me souviens, quelque chose comme...
Vous pouvez également faire simple objet de valeur classe pour faciliter les manipulations. Comme...
Et après que vous pouvez faire
Edit:
Je vous recommande de comprendre les fondamentaux de la programmation orientée objet principes, cela vous aidera beaucoup dans le début.
Edit 2: Java 8 (avec interface fonctionnelle et un lambda):
OriginalL'auteur fiction
C'est le moyen le plus facile de Tri de Tableau de Chaîne:
Les tableaux de.de tri(mystringarray);
OriginalL'auteur Mayura
Utilisation
Comparateur permettra de comparer vos chaînes comme des nombres entiers.
OriginalL'auteur Alex Orlov
de sortie:
Avant le tri
Noms : [sathish, Ravi, Praksh, pavithara, Duraga, uma, Upendar]
Après le tri
Noms : [Duraga, pavithara, Praksh, Ravi, sathish, uma, Upendar]
OriginalL'auteur challa sathish kumar
Utiliser si possible une meilleure structure de données pour votre problème, utilisez la table de hachage, avec le nom de score de cartographie et de , tri de la table de hachage avec des valeurs.
Si vous voulez aller avec arraylist comme vous l'avez décrite, avant de les trier, de les convertir en entier et de les trier, puis retour à la chaîne.
OriginalL'auteur sat
Vous feriez probablement mieux stocker les noms des résultats dans les objets, puis les stocker ces dans une ArrayList. Vous pouvez ensuite trier très facilement en utilisant une mesure de comparaison, voir le lien pour un exemple simple: http://www.javabeat.net/tips/20-sorting-custom-types-in-java.html
OriginalL'auteur t_barbz
Score doit être une classe comme
Alors vous pouvez construire les objets de la partition,
les mettre dans une Liste et de les trier par
Ce qui concerne,
Stéphane
OriginalL'auteur Snicolas
Vous pouvez utiliser
ArrayList
au lieu deArray
.Veuillez vérifier ce lien
OriginalL'auteur Nikhil