IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

Quelle classe pour manipuler un tableau à n dimensions


Sujet :

Collection et Stream Java

  1. #1
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut Quelle classe pour manipuler un tableau à n dimensions
    Bonjour,

    Je voudrais créer un tableau à au moins deux dimensions et le trier selon une colonne de telle manière que chaque ligne conserve son intégrité après le tri, je suppose qu'il faut plutôt une classe prédefinie avec une méthode prévue pour ça, mais laquelle ?

    Pourriez vous m'orienter ?

    Merci

    Philippe

  2. #2
    Membre habitué Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Points : 150
    Points
    150
    Par défaut
    Un tableau en deux dimensions, c'est un tableau de tableaux.

    Ensuite tu peux trier ton tableau global suivant un critère particulier de tes tableaux contenus. L'intégrité se conserve puisqu'on ne touche pas au "deuxième niveau" de tableaux.

    Ensuite concernant les tris, il en existe de toutes sortes (tri à bulles, tri fusion, ...).

    Il y a p-e effectivement des classes qui te simplifient la tache que je ne connais pas, mais de toute manière les algorithme de tris sont disponibles un peu partout sur le net (ex: http://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles)

    Ce qu'il faut donc que tu retiennes: tableau à 2 dimensions = tableau de tableaux.

    Cela t'aide t-il?

  3. #3
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    je vais essayer de trier le tableau (de tableaux) comme tu me le proposes, je souhaiterais toutefois connaitre une methode en passant par une classe je cherche un résultat mais aussi de la doc sur les classes "conteneurs" (je ne sais pas si c'est le bon terme) et aussi éviter les algorithmes (même de tris pourtant ils sont bien).
    Merci pour ton info

  4. #4
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    j'ai écrit le petit test suivant !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    import java.util.*;
    import java.io.*;
     
    public class Tri 
    	{
    	public static void main(String args[])
    		{
    		int i=0;
    		int j=0;
    		int [][]tab=new int[2][21];
    			i=1-1;
    			j=1-1;
    			while(j<21)
    				{
    				tab[i][j]=j;
    				j++;
    				}
    			i=1;
    			j=1-1;
    			while(j<21)
    				{
    				tab[i][j]=21-1-j;
    				j++;
    				}
    			i=1-1;
    			while(i<2)
    				{
    				j=1-1;
    				while(j<21)
    					{
    					System.out.printf("%4d",tab[i][j]);
    					j++;
    					}
    				System.out.println();
    				i++;
    				}
    				i=1;
    			Arrays.sort(tab[i]);
    			i=1-1;
    			while(i<2)
    				{
    				j=1-1;
    				while(j<21)
    					{
    					System.out.printf("%4d",tab[i][j]);
    					j++;
    					}
    				System.out.println();
    				i++;
    				}
    			}
    		}
    le résultat montre que le tri n'affecte que le sous tableau demandé, or je souhaite trié les données solidairement dans leur dimension, quelqu'un aurait-il une autre idée ? surtout une classe toute prête

    merci

  5. #5
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Pourquoi ne fais-tu pas une List<UnObjetQuiRepresenteUneLigne>?

  6. #6
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    pourrais tu etre un tout un petit peu plus explicite ?

  7. #7
    Membre éclairé Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Points : 718
    Points
    718
    Par défaut
    Que représente une ligne? Ou tu veux afficher une liste de quoi?

  8. #8
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    au départ des noms avec leur âges

  9. #9
    Membre habitué Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 89
    Points : 150
    Points
    150
    Par défaut
    Alors déjà, une question: pourquoi quand tu affectes 0 à une variable tu t'éclates à faire un petit calcul dans la majeure partie des cas? (1-1) C'est artistique?

    Ensuite, concernant les objets, tu te fais une classe qui représente tes lignes. Imaginons que tes lignes sont des personnes:

    class Personne {
    String nom;
    String prenom;
    String age;
    }

    et du coup un tableau qui contient tes personnes:

    Personne[] monTableau

    A toi ensuite de changer l'ordre dans ce tableau suivant le critère sélectionné qui correspond donc à ta "colonne" (nom, prenom ou age).

    Tu peux d'ailleurs utiliser sort en implantant un ou plusieurs Comparator.

    Ce lien a l'air pas mal à première vue pour un exemple avec du code: http://www.javadeveloper.co.in/java-...r-example.html

    EDIT: Ah, tient, mon exemple sur les personnes tombe bien à ce que je vois. ^^

  10. #10
    En attente de confirmation mail
    Inscrit en
    Septembre 2009
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 269
    Points : 96
    Points
    96
    Par défaut
    ok, c'est une manière plutôt efficace, merci pour ton lien,
    pour ce qui est des 1-1, j'ai du le faire une fois, et.....c'est resté !
    mais, merci
    (je suis assez débutant)

    Philippe

  11. #11
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Cela dit, pour la question initiale, ie une matrice de dimensions quelconque, il n'y a rien dans le "standard". En Googlant on tombe sur des API de gestion de Matrices, mais c'est toujours des matrices de nombres ...

    Il faudrait développer une structure, à vue de nez je pense que je commencerai par un objet Dimensions qui gère les N dimensions (un bête wrapper pour une liste de N entiers) et ensuite faire une Map<Dimensions, Objets>.
    Les opérations de tri d'hyperplans seront plutôt gourmandes, mais bon ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle classe pour manipuler un tableau
    Par philippe6 dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 30/04/2012, 16h08
  2. Réponses: 6
    Dernier message: 26/06/2006, 10h29
  3. Réponses: 2
    Dernier message: 17/03/2006, 09h26
  4. [FPDF] Quelle classe pour produire des PDF simples ?
    Par boteha dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 03/11/2005, 22h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo