java les Tableaux.tri de tableau 2d
DONC,
Je suis looknig pour trier le tableau suivant, basé sur les valeurs de [][0]
double[][] myArr = new double[mySize][2];
donc, pour ex, myArr contenu est:
1 5
13 1.55
12 100.6
12.1 .85
Je veux obtenir :
1 5
12 100.6
12.1 .85
13 1.55
Je suis à la recherche de le faire sans avoir à implémenter mon propre tri. Toute aide est appréciée, merci.
Utiliser un
Comparator
.OriginalL'auteur Dax Durax | 2013-03-16
Vous devez vous connecter pour publier un commentaire.
Utilisation Surchargé Tableaux#Tri(T [], Comparateur c) qui prend Comparateur comme deuxième argument.
Double.compare(b[0], a[0])
à la place.ahh, c'est vrai, édité, merci:)
Comment pouvez-vous vous passer de la 2D tableau en argument lors de trier attend un tableau 1D? Cela n'a pas fonctionné pour moi.
Je suis en supposant qu'ils ont été en utilisant quelque chose comme
a[0] - b[0]
avant de vous le dire. Pourquoi ne serait-il pas de travail? C'est en fait un tri commun idiome pour les nombres.Pas si ils sont assez grands, est le point. Si vos numéros sont toujours positifs, c'est bien, mais si vous comparez
Integer.MAX_VALUE
à-1
vous obtiendrez de débordement. C'est juste mieux de faire la bonne chose dès le début.OriginalL'auteur PermGenError
Bienvenue Java 8:
OriginalL'auteur Gevorg
Vous avez besoin pour mettre en œuvre un
Comparator<Double[]>
comme suit:De sortie:
OriginalL'auteur Boris the Spider
Bien que c'est un vieux thread, voici deux exemples pour résoudre le problème de Java8.
tri par la première colonne ([][0]):
de tri par les deux premières colonnes ([][0], [][1]):
OriginalL'auteur John
Bonne Chance
OriginalL'auteur Nasser Al kaabi
Simplifié De Java 8
IntelliJ suggère de simplifier le haut de répondre à la:
OriginalL'auteur kyxap
Pour une solution générale, vous pouvez utiliser le Colonne De Comparaison. Le code à utiliser la classe serait:
OriginalL'auteur camickr