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 :

ArrayList qui ne retourne rien


Sujet :

Collection et Stream Java

  1. #1
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut ArrayList qui ne retourne rien
    bonjour tout le monde,
    j'utilise des ArrayList pour y mettre des données que j'extrait de base de données
    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
     
    public ArrayList<Integer> getFeatureNumber() {
    		return featureNumber;
    	}
    	public void setFeatureNumber(ArrayList<Integer> featureNumber) {
    		this.featureNumber = featureNumber;
    	}
    	public ArrayList<Integer> retrieveFeatureNumbers(){
    		//int i=0;		
    		for(Iterator<String> itr = tablesName.iterator(); itr.hasNext();){
    			String name = (String)itr.next();
    			//System.out.println(name);
    		String query = "SELECT count(*) As num FROM "+name;
    		try {
    			Statement statement = connection.createStatement();
    			ResultSet rs = statement.executeQuery(query);
    			while(rs.next()){
     
    				int num = rs.getInt("num");
    				featureNumber.add(num);
     
    				System.out.println(featureNumber.toString());
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		}
    		setFeatureNumber(featureNumber);
    		return featureNumber;
    	}
    puis dans une autre classe ou je construit un arbre avec ces données je fais
    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
     
    conn.retrieveFeatureNumbers();
    		ArrayList<Integer> numbers = new ArrayList<Integer>();
    		numbers = conn.getFeatureNumber();
    		//System.out.println(numbers);
    		//numbers = conn.retrieveFeatureNumbers();
    		for(int i = 0; i<numRow; i++){
     
    		treeParent = new TreeParent(conn.retrieveTablesName().get(i));
    		root.addChild(treeParent);
    		//int suRow[] = new int[conn.getFeatureNumber().length];	
    		//for(Iterator<?> itr = conn.retrieveFeatureNumbers().iterator(); itr.hasNext();){
    		//int num = conn.getFeatureNumber().get((Integer)itr.next());
                for(Iterator<Integer> itr = conn.getFeatureNumber().iterator(); itr.hasNext();){
     
    			//int num = (Integer)itr.next();
    			System.out.println(itr.next());
    			for(int j = 0; j<(Integer)itr.next(); j++){
    			//for(Iterator itr = conn.getFeatureNumber().iterator(); itr.hasNext();){
    				//itr.next();
    		      treeParent.addChild(new TreeObject("Feature"+j));
     
    		}
    		}
    		}
    mais le problème est que dans cette dernière classe ma liste est toujours vide
    si quelqu'un peut m'aider à résoudre ce pb ce serai cool

  2. #2
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    A la lecture du code, je pense que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    conn.retrieveFeatureNumbers();
    ArrayList<Integer> numbers = new ArrayList<Integer>();
    numbers = conn.getFeatureNumber();
    peut ce résumer par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ArrayList<Integer> numbers = conn.retrieveFeatureNumbers();
    que donne la sortie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList<Integer> numbers = conn.retrieveFeatureNumbers();
    System.out.println("numbers : "+ numbers.size());
    Autre question, dans la fonction retrieveFeatureNumbers() où est créé le variable featureNumber ?

    D'ailleurs les variables c'est bien mais quand elle ne servent qu'une fois ça ne sert à rien et c'est source d'erreurs...
    Voici ton code un peu nettoyé :
    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
     
    public ArrayList<Integer> retrieveFeatureNumbers() throws SQLException {
     
        Statement statement = connection.createStatement();
        ResultSet resultSet;
     
        for(Iterator<String> itr = tablesName.iterator(); itr.hasNext();) {
            resultSet = statement.executeQuery( "SELECT count(*) As num FROM "+ itr.next() );
            if(resultSet.next()) { // il n'y a qu'un résultat dans la sélection
                featureNumber.add( resultSet.getInt("num") );
                System.out.println(featureNumber.toString()); //debug
            }
            resultSet.close();
        }
        statement.close();
     
        setFeatureNumber(featureNumber);
        return featureNumber;
    }

  3. #3
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ArrayList<Integer> numbers = conn.retrieveFeatureNumbers();
    System.out.println("numbers : "+ numbers.size());
    c'est ça mon problème c'est que ce code ne donne rien
    [ ] une liste vide
    je ne comprend pas pourquoi

    Autre question, dans la fonction retrieveFeatureNumbers() où est créé le variable featureNumber ?
    featureNumber est déclarée au debut de la classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public ArrayList<Integer> featureNumber = new ArrayList<Integer>();

  4. #4
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    Dans ta méthode retrieveFeatureNumbers() que donne l'affichage qui est dans la boucle ?

  5. #5
    Membre actif Avatar de aymen83
    Inscrit en
    Décembre 2007
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 271
    Points : 268
    Points
    268
    Par défaut
    l'affichage est [4 5 3 2] ce qui correspond exactement aux nombres d'enregistrements contenue dans mes 4 tables
    j'ai même écrit une méthode pour itérer et me renvoyer chaque nombre mais quand je l'utilise dans mon autre classe c'est toujours vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public int returnAttributes(){
    		int num = 0;
    		for(int i=0; i<featureNumber.size(); i++){
    			num = featureNumber.get(i);
    			//System.out.println(num);
    		}
    		return num;
    	}

Discussions similaires

  1. Select qui ne retourne rien
    Par hunter001 dans le forum SQL
    Réponses: 2
    Dernier message: 12/06/2007, 11h37
  2. fonction qui ne retourne rien, comment c'est possible ?
    Par lOeil dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 02/06/2007, 00h51
  3. Requête qui ne retourne rien
    Par afrique dans le forum Administration
    Réponses: 4
    Dernier message: 02/10/2006, 18h19
  4. [MySQL] Requête qui ne retourne rien
    Par baleiney dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/06/2006, 18h29
  5. SELECT qui ne retourne rien à cause d'anti-slash
    Par mikyfpc dans le forum Outils
    Réponses: 8
    Dernier message: 07/08/2005, 23h04

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