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 :

Supprimer une ligne et colonne d'un tableau de int


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut Supprimer une ligne et colonne d'un tableau de int
    Bonjour,
    Je dois supprimer une ligne et une colonne d'un tableau à 2D de int.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int [][] tab = new int [10][10];
    //initialisation du tableau: ce tableau contient donc des valeurs
    //...
    Le nombre de lignes et de colonnes est le même. Ce que je veux c'est qu'on me donne un numéro de ligne et colonne et que je supprime ces lignes et colonnes du tableau, sans perdre les valeurs qui étaient dans le tableau.
    Donc:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void supprimer(int i) {
          //SUPPRIMER LA LIGNE i et la colonne i de mon tableau 
    }
    Pouvez vous m'aider? Merci d'avance

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Bah tu as deux soluces. Sois tu fais ton algo qui décale tout les indices de ton tableau pour transvaser tes valeurs. Celles de i+1 à la place de i, celles de i+2 à la place de i+1, etc. Sache parcontre que le tableau étant initialisé à 10 cases en X ou Y, il gardera de toute façon cette taille.

    L'autre soluce c'est d'utiliser autre chose qu'un tableau en utilisant une liste (ArrayList, ...). Les listes prévoient le mécanisme de suppression avec des méthodes delete().

    PS : C'est normal qu'on te demandera toujours la même valeur de ligne et de colonne lors de ta supression ? Je me demande juste si ton tableau n'est qu'initialisé dans les cases qui ont les mêmes X et Y. Si oui, l'utilisation d'un tableau à 2 dimensions ne sert pas.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Si tu es obligé d'utiliser un tableau, jette un œil à arraycopy, ça pourrait t'aider!

  4. #4
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Par défaut
    Citation Envoyé par Mamypirate Voir le message
    Si tu es obligé d'utiliser un tableau, jette un œil à arraycopy, ça pourrait t'aider!
    Première fois que j'entends parler de cette fonction

    C'est vrai que Mamypirate a raison, ça simplifiera ton boulot (même plus besoin de décaler les valeurs à la main) si tu es obligé d'utiliser un tableau bien sur.
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    187
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 187
    Par défaut
    Merci mais je n'y arrive toujours pas.
    Quelqu'un peut me donner un exemple par exemple si je veux supprimer la ligne 5 et la colonne 5 de mon tableau à 2D d'entiers?


    Merci d'avance.

  6. #6
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Essai comme ça :

    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
    public int[][] supprimer(int[][] tab, int index) {
    	int[][] newTab = new int[tab.length-1][tab.length-1];
     
    	int k=0;
    	for(int i=0; i<tab.length; i++) {
    		if(i == index) {
    			i++;
    		}
    		System.arraycopy(tab[i], 0, newTab[k], 0, index);
    		if (tab[i].length != index) {
    			System.arraycopy(tab[i], index + 1, newTab[k], index, tab[i].length - index - 1);
    		}
    		k++;
    	}
    	return newTab;
    }


    Il y a peut être des contrôles à ajouter ...

Discussions similaires

  1. Supprimer une ligne dans un tableau
    Par Asdorve dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 28/06/2007, 15h14
  2. Réponses: 1
    Dernier message: 24/04/2007, 17h20
  3. [Conception] Supprimer une ligne d'un tableau à partir d'un CHECKBOX
    Par snakejl dans le forum PHP & Base de données
    Réponses: 71
    Dernier message: 30/05/2006, 08h43
  4. supprimer une ligne dans un tableau
    Par sandball22 dans le forum C++Builder
    Réponses: 9
    Dernier message: 16/05/2006, 21h53
  5. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26

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