dodawanie elemntow do hashmapy

0
public class Firma {
   Set<Pracownik> spis=new HashSet<Pracownik>() {};

   
       //a
       public Boolean Exist(Pracownik a1){
     
       for(Iterator<Pracownik> it=spis.iterator();it.hasNext();){
       Pracownik pracownik=it.next();     
       if(pracownik.equals(a1))
           return true;
       }
       return false;
       
   }
       
   //b
       public void Add(){
           Scanner in=new Scanner(System.in);
           try{
           Pracownik a1=new Pracownik(in.nextLine(),in.nextLine());
           int stan=in.nextInt();
           
             switch (stan) {
            case 1:
                a1.setStanowisko( Stanowisko.DYREKTOR);
                break;
            case 2:
                a1.setStanowisko( Stanowisko.KIEROWNIK);
                break;
        }
           
           if(this.Exist(a1))
               throw new IllegalStateException("Ten pracownik jest już w bazie");
           spis.add(a1);
           }catch(IllegalStateException e){ e.printStackTrace();   
           Pracownik a2=new Pracownik(in.nextLine(),in.nextLine());  
           int stan=in.nextInt();
           
             switch (stan) {
            case 1:
                a2.setStanowisko( Stanowisko.DYREKTOR);
                break;
            case 2:
               a2.setStanowisko( Stanowisko.KIEROWNIK);
               break;
        }
           spis.add(a2);}
           finally{}
       }
       //c
       public int Amount(){
           
           return spis.size();
       }
       
       //d
       public void Erase(){
           Scanner in=new Scanner(System.in);
            Pracownik a1=new Pracownik(in.nextLine(),in.nextLine());
           spis.removeIf((Pracownik i)->{
               
               return i.equals(a1);     
           });
           
               
       }
   //e
       public void View(){
        for(Iterator<Pracownik> it=spis.iterator();it.hasNext();)
        {
         Pracownik pracownik = it.next();
         System.out.println(pracownik);
        }
       }
       //zadanie6
      public class zagniezdzona implements Iterator<Pracownik>{

        @Override
        public boolean hasNext() {       
            return hasNext();
        } 
         

        @Override
        public Pracownik next() {    
            return next();
          
        }
   
       }
      
    
   }

kiedy wywołuje metodę init() to mam java.util.HashMap$[email protected]$[email protected]$KeyIterator@ i tak dlaej i nie wiem dlaczego

1

ponieważ wypisujesz obiekt iteratora,a nie obiekt z mapy.

for(Iterator it=spis.iterator();it.hasNext();)
    Pracownik pracownik = it.next();
    System.out.print(pracownik);
}
0
TomRiddle napisał(a):

ponieważ wypisujesz obiekt iteratora,a nie obiekt z mapy.

for(Iterator it=spis.iterator();it.hasNext();)
    Pracownik pracownik = it.next();
    System.out.print(pracownik);
}
   Pracownik pracownik = null;
    for(Iterator it=spis.iterator();it.hasNext();)
     pracownik = (Pracownik) it.next();
       
    System.out.print(pracownik);

musiałem castować ponieważ wyskakiwał mi błąd "incompatible types: Object cannot be converted to Pracownik" i w zasadzie nie wiem dlaczego

1
 for(Iterator<Pracownik> it=spis.iterator();it.hasNext();)
 {
     Pracownik pracownik = it.next();
     System.out.print(pracownik);
 }

1 użytkowników online, w tym zalogowanych: 0, gości: 1