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

Java Discussion :

Possibilités Java, types et tableaux


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Possibilités Java, types et tableaux
    Bonjour,
    Est il possible d'implémenter une(seule pas de fonction overloadées) fonction en java qui puisse recevoir un tableau, et renvoyer true dans le cas où tous les éléments sont identiques et false le cas échéant.

    Nb: Quelque soit le type de variables dans le tableau(tout géré par une même fonction)

    Merci de votre aide.

  2. #2
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    public static boolean identique(Object[] tab) {
    if (tab == null || tab.length == 0) return false; // établis ta règle ici, moi je mettrai faux.
    if (tab.length == 1) return true;
    for ( int i = 1; i < tab.length; i++)
    if (! (tab[0] == null ? tab[i] == null : tab[0].equals(tab[i])))
    return false;
    return true;
    }
    N'oublie pas de surcharger la méthode Object#equals(Object obj)

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Voilà l'erreur que j'ai quand je passe à la fonction un tableau de trois entiers.

    The method identique(Object[]) in the type Test is not applicable for the arguments (int[])

    Ai je mal compris ou il y a encore quelque chose à faire?

    Merci.

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    Pendant qu'on y est. La solution que tu as proposée ne marche pas notamment pour les int, ...

    Pourriez vous m'aider s'il vous plaît à corriger les erreurs dans le code ci-dessous? Merci.

    Je suis arrivé à créer une classe qui gère les types génériques.
    Seul problème encore, je n'arrive pas encore à implémenter ma fonction qui recevra un tableau de n'importe quel type(notament int).

    Voici l'erreur que j'ai:

    The method IsIdentique(ArrayList<int[]>) in the type Test.Identique<int[]> is not applicable for the arguments (int[])

    Avec le code 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
    54
    55
    package test;
     
    import java.util.ArrayList;
     
    public class Test {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
     
    		boolean reponse;
     
    		Identique<int[]> test = new Identique<int[]>();
     
    		test.SetElement(new int[]{1,2,3});
     
    		reponse = test.IsIdentique(new int[]{1,2,3});//ici se trouve l'erreur
     
    		System.out.println(reponse);
     
    	}
     
    	public class Identique <E>
    	{
    		private E element;
     
    		public void SetElement(E x)
    		{
    			element=x;
    		}
     
    		public E GetElement()
    		{
    			return element;
    		}
     
    		public boolean IsIdentique(ArrayList<E> x)
     
    		{
    			E firstValue = x.get(0);
     
    			for (E e : x) {
    				if(!e.equals(firstValue))
    					return false;
     
    			}
     
    			return true;
    		}
    	}
     
     
    }
    Et je n'arrive pas non plus à déclarer une variable de la manière suivante.
    Identique<int> test = new Identique<int>();

    L'erreur générée est la suivante: Syntax error on token "int", Dimensions expected after this token

    Sauriez vous me donner un peu d'éclaircissement? Merci.

  5. #5
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    IsIdentique(ArrayList<int[]>) .... Pour moi c'est une liste de tableau, toi tu as demandé comment faire pour voir si tous les éléments d'un tableau d'éléments (par défaut d'Object car étant la super classe de toutes les autres hors primitives)

    De plus, c'est une méthode statique que je t'ai donnée, la classe que tu lui a associé ne sert à rien (as tu au moin une définition de ton type d'objet ici ?)

    Si les tableaux de primitifs ne fonctionnent pas, essaie ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    	public static boolean identique(Object[] tab) {
    		if (tab == null || tab.length == 0) return false; // établis ta règle ici, moi je mettrai faux.
    		if (tab.length == 1) return true;
    		for ( int i = 1; i < tab.length; i++)
    			if (! (tab[0] == null ? tab[i] == null : tab[0].getClass().isPrimitive() ?
    					tab[0] == tab[i] : tab[0].equals(tab[i])))
    				return false;
    		return true;
    	}

Discussions similaires

  1. [Débutant] Création d'une application Java type EE
    Par klane dans le forum Général Java
    Réponses: 17
    Dernier message: 01/09/2011, 17h42
  2. Réponses: 101
    Dernier message: 20/09/2010, 10h20
  3. Réponses: 39
    Dernier message: 11/08/2010, 09h28
  4. [java 1.5]tableaux génériques
    Par parsy dans le forum Langage
    Réponses: 15
    Dernier message: 31/03/2006, 12h33

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