Partage

Trier un tableau en java

Trier un tableau en java

Le 6 janvier 2007 à 22:38:49

bsr,
je suis debutante en java, et je veux savoir comment on peux trier un tableau en java, quelqu'un peux m'aider??? heeeeelppp :(
merci d'avance!
Publicité
Le 6 janvier 2007 à 22:38:49
Le 7 janvier 2007 à 0:43:54

Essaie ça :

import java.util.*;

public class Test {
        public static void main(String[] args) {
                int[] list = new int[4];
                list[0] =152 ;
                list[1] = 5;
                list[2] = 596;
                list[3] = 63;

                Arrays.sort(list);

                for(int i = 0; i < list.length; i++)
                        System.out.println(list[i]);
        }
}


Lien vers la doc
Le 10 janvier 2007 à 11:56:35

sinon d'un point de vue algorythmique, il y a diverse méthode de tri (tri bulle, tri plomb, tri fusion, tri sélection, tri mini, tri maxi...)
Le 3 juin 2008 à 17:17:57

bonjour,
Je voudrais trier mon tableau dans l'ordre inverse. C'est à dire quand j'ai fait un sort de mon tableau pour trier bien mon tableau, j'ai besoin d'inverser l'ordre. Autrement dit, que mon tableau soit trier du plus grand au plus petit. dans d'autres langages on a des méthodes comme:

rsort() ou encore reverse()

mais dans mon programme, il semble que ça n'existe pas... :/

Voici mon code:

//declaration de la methode ClassementMat
	public static int ClassementMat(){
//declaration des variables de la methode ListingMat
		String matiere, requete, numEtu;
		float[] tab = new float[100];
		ResultSet rs;
		int update = -1, i=0, position=1;
		
		System.out.println("Indiquez la matiere dont vous voulez le classement");
		matiere = Clavier.readString();
		
		try {
			//connection
			Connecter();
			//requete de selection de l'etudiant
			requete = "SELECT AVG(note) FROM not_NOTES WHERE matiere='"+matiere+"' GROUP BY numeroEtudiant ORDER BY note DESC";
			rs = stmt.executeQuery(requete);
			while(rs.next()){
				tab[i] = rs.getFloat("AVG(note)");
				Arrays.sort(tab);
				Array.reverse();
				System.out.println(position+". "+tab[i]);
				position++;
				i++;
			}
			
			//deconnection();
			con.close();
		}//fin try
		catch (Exception e) {
			e.printStackTrace();
		}//fin catch
		
		return update;
	}//fin ClassementMat
Le 3 juin 2008 à 21:21:32

En général, on travaille avec des listes d'objets ou des tableaux d'objet.

Dans ce cas, il faut utiliser la méthode : sort(Object, Comparator) http://java.sun.com/j2se/1.4.2/docs/api/java/util/Arrays.html#sort(java.lang.Object[],%20java.util.Comparator)
en implémentant un Comparator qui donne l'ordre inverse.

Exemple :
class MonObject {
  String monNom;
  public String getMonNom() { return monNom;}
}

MonObject[] monTableau = new ....

Arrays.sort(monTableau,  new Compatator() { 
     int compare(Object o1, Object o2) {
        MonObject m1 = (MonObject) o1;
        MonObject m2 = (MonObject) m2;
        return -m1.getMonNom().compareYTo(m2.getMonNom());
     }
});


Il faut éventuellement adapter suivant la classe et le type de champ à comparer
Le 14 juin 2013 à 19:14:20- Message modéré pour le motif suivant : Déterrage

cc chui vraiment faible en java vs pouvez m’aidai

Trier un tableau en java

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown