Contenu perdu de mon treeset

Signaler
Messages postés
26
Date d'inscription
vendredi 22 mars 2019
Statut
Membre
Dernière intervention
6 janvier 2020
-
KX
Messages postés
16105
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
29 janvier 2020
-
Bonjour,
Je perds le contenu de mon treeset en passant d’une méthode a une autre dans la même classe , quelle est la solution s’il vous plaît ?
ci dessous mon code, je tente de supprimer les biens qui ne satisfont pas les critères demandés le nombre de critères est variable

   public void  recherche_selon_critr(){
        Bien bien=null;
        Scanner sc=new Scanner(System.in);
        
        TreeSet<Bien>  liste_des_biens_rech =new TreeSet<Bien>();
        int nbr;
        
        System.out.println("saisissez le nombre de criteres");
        nbr=sc.nextInt();
        System.out.println("voici le nbr "+nbr);
        int critere[]=new int[7];
        int i; 
        liste_des_biens_rech=liste_des_biens;
        System.out.println("choisissez vos criteres par ordre svp");
        for(i=1;i<=nbr;i++)
        {
        System.out.println("Choisissez votre citere SVP  : ");
        System.out.println("{1}-->Selon le type de la transaction .");
        System.out.println("{2}-->Selon la wilaya .");
        System.out.println("{3}-->Selon le prix maximal . ");
        System.out.println("{4}-->Selon le prix minimal . ");
        System.out.println("{5}-->Selon le type .");
        System.out.println("{6}-->Selon la superficie minimale . ");
      
            
         critere[i]=sc.nextInt(); 
        }
        
          int j=1; 
          int z;
          boolean removed;
          
          if((critere[j]==1)&&(j<=nbr)) {
           
                System.out.println("Donner le type de la transaction  SVP :");
                String adr=sc.nextLine();
                adr=sc.nextLine();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (bien.getTransaction().toString().equals(adr)) {
                       z=9;
                       
                    }
                    else
                     removed=this.liste_des_biens_rech.remove(bien);
                    
                }
                j++;
                
            }
            if((critere[j]==2)&&(j<=nbr))
            {
                System.out.println("Donner la wilaya   SVP :");
                String wil;
                wil=sc.nextLine();
                wil=sc.nextLine();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (bien.getWilaya().toString().equals(wil)) {
                        z=9;
                    }
                    else 
                     removed=this.liste_des_biens_rech.remove(bien);
                }
                j++;
            }
                
            if((critere[j]==3)&&(j<=nbr)) {
                System.out.println("Donner le prix maximal  :");
                int  prix=sc.nextInt();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (bien.getPrix()>prix) {
                      removed=this.liste_des_biens_rech.remove(bien);
                    }
                }
                j++;
            }
           
            if((critere[j]==4)&&(j<=nbr))
            {
                System.out.println("Donner le prix minimal  SVP :");
                int  prix_m=sc.nextInt();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (bien.getPrix()<prix_m) {
                      removed=this.liste_des_biens_rech.remove(bien);
                    }
                }
                j++;
            }
           
            if((critere[j]==5)&&(j<=nbr))
            {
                System.out.println("Donner le type comme suit : 1: Appartement , 2 :Maison, 3: Terrain   SVP :");
                int  type=sc.nextInt();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (type==1 &&(bien instanceof Appartement)) {
                        z=9;
                    }
                    else
                      removed=this.liste_des_biens_rech.remove(bien);
                    if (type==2 &&(bien instanceof Maison)) {
                      z=9;  
                    }
                    else 
                      removed=this.liste_des_biens_rech.remove(bien);
                    if (type==3 &&(bien instanceof Terrain)) {
                       z=9;
                    }
                    else
                      removed=this.liste_des_biens_rech.remove(bien);

                }

            }
            if((critere[j]==6)&&(j<=nbr))
            {
                System.out.println("Donner la superficie minimale  SVP : ");
                int sprfc=sc.nextInt();
                for (Bien liste_des_bien : liste_des_biens_rech) {
                    bien = liste_des_bien;
                    if (bien.getSurface()<sprfc) {
                      removed=this.liste_des_biens_rech.remove(bien);
                    }
                }
                j++;
            }
            
        
        System.out.println("voici le resultat de la recherche");
        System.out.println("");
        int cpt=1;
        for(Bien bn:liste_des_biens_rech){
            System.out.println("NUMERO DU BIEN : "+cpt);
            bn.afficher();
            System.out.println(" ");
            System.out.println("---------------------------------------");
            System.out.println(" ");
            cpt++;}
       
        
    }


Configuration: iPhone / Safari 12.1

1 réponse

Messages postés
16105
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
29 janvier 2020
2 506
Bonjour,

La recherche tu la fais sur
TreeSet<Bien>  liste_des_biens_rech =new TreeSet<Bien>()
, c'est à dire sur un ensemble vide, à quel moment est-ce que tu mets des valeurs dedans ?

Il faudrait sûrement déclarer ton TreeSet comme attribut de la classe, afin d'utiliser le même objet lors d'ajout de valeurs et lors de recherche, sinon effectivement ça ne renverra jamais rien.