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 :

Retirer élément d'un tableau


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut Retirer élément d'un tableau
    Salut !
    J'ai en attribut de ma classe File, un tableau de Clients qui représente une file d'attente.
    J'ai une méthode remove() qui selectionne le premier élément de mon tableau et qui le retire.
    Voila ce que j'ai fait :
    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
    	public class ArrayFile {
    	private final Client[] clients;
    	private int debut;
    	private int fin;
     
    	public ArrayFile(int taille) {
    		this.clients = new Client[taille];
    		this.debut = 0;
    		this.fin = taille;
    	}
    	public Client remove() {
    		Client c = this.clients[this.debut];
    		for(int i = this.debut; i < this.fin - 1; i++) {
    			this.clients[i] = this.clients[i+1];	
    		}
    		return c;
    	}
    Le probleme c'est que par exemple si j'ai trois clients dans mon tableau, "laura" , "ned" et "charlie" j'obtiens après l'utilisation de remove() : "ned" "charlie" "charlie".
    Je vois bien où est le probleme mais je ne vois pas comment faire pour obtenir juste "ned" "charlie" vu que je ne peux pas modifier la taille de mon tableau (c'est bien ça que signifie le mot clé final non?)
    Voila c'est tout merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Nope, ça n'a rien à voir avec final. En Java on ne peut pas changer la taille d'un tableau et puis c'est tout. D'ailleurs je vois même pas comment tu comptais écrire "changer la taille du tableau," final ou pas final.

    Pour des "tableaux redimensionnables," il faut utiliser les List, principalement ArrayList. Ça tu peux enlever ou ajouter des éléments dedans. (Et final ne change rien à ça, car ça n'a rien à voir.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2013
    Messages : 77
    Par défaut
    oui c est vrai j'avais oublié qu'on ne pouvait pas changer la taille d'un tableau mais il se trouve que je suis obligé d'en utiliser un , donc y a t il un autre moyen pour résoudre le probleme ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Décembre 2011
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 974
    Par défaut
    Citation Envoyé par tamerla Voir le message
    oui c est vrai j'avais oublié qu'on ne pouvait pas changer la taille d'un tableau mais il se trouve que je suis obligé d'en utiliser un , donc y a t il un autre moyen pour résoudre le probleme ?
    Par exemple, tu peux transformer ton tableau en list (Arrays.asList(a[]) ), faire ta modification et retransformer en tableau ( méthode toArray() de l'interface List )

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ouais, c'est se compliquer la nenette de passer par une liste pour revenir au tableau. Suffit de créer un nouveau tableau plus petit et de transférer ce qui reste:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public Client remove() {
    		Client c = this.clients[this.debut];
                    this.clients = Arrays.copyOf(this.clients,this.debut,this.fin-1);
    		return c;
    	}

Discussions similaires

  1. Recherche élément médian dans tableau non trié
    Par chicorico dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 27/05/2009, 17h39
  2. Réponses: 8
    Dernier message: 18/11/2008, 20h22
  3. [HTML/CSS]désigner un élément dans un tableau de l'extérieur
    Par FrankOVD dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 28/06/2005, 21h55
  4. Supprimer un élément d'un tableau
    Par CaptainChoc dans le forum Langage
    Réponses: 15
    Dernier message: 23/12/2002, 23h14
  5. Réponses: 3
    Dernier message: 16/12/2002, 16h12

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