在我的程序哈希表显示最后一次再次输入Nd再次...它不显示我输入的所有输入,我不认识错误 [英] In My Program Hashtable Display Only Last Entry Again Nd Again...It Not Show All Enteries Which I Gave As Input,I Don't Recognize Error

查看:62
本文介绍了在我的程序哈希表显示最后一次再次输入Nd再次...它不显示我输入的所有输入,我不认识错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//Employee class.............

package employeedetails;
public class EmployeeDetails {

    private String EmpName;
    private int EmpId;

    public String getEmpName(){
        return EmpName;
    }

     public int getEmpId(){
        return EmpId;
    }
    EmployeeDetails(String EmpName,int EmpId){
        this.EmpName=EmpName;
        this.EmpId=EmpId;
    }

   public String toString(){
       return "EMployeeName= "+EmpName+" EmployeeID= "+EmpId;
    }
    
}





/ !!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!



/!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

// Main class

package employeedetails;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Scanner;
public class Employee {
       String name;
       int id;
       Scanner s= new Scanner(System.in);
       EmployeeDetails employeeDetails=null;
       Hashtable<string,employeedetails> h= new Hashtable<string,employeedetails> ();

        public static void main(String[] args) {

        Employee employee= new Employee();
        employee.callMe();
    }
       public void callMe(){
           System.out.println("you want to add emp details");
          char ch= Employee.getChar();
           if(ch=='y'||ch=='Y'){
            getData();
      employeeDetails= new EmployeeDetails(name,id);
      h.put(name, employeeDetails);
           for(Enumeration<employeedetails> en = h.elements();en.hasMoreElements();) {
              employeeDetails = en.nextElement();
              System.out.println(employeeDetails); }
        }
    else{}
    }

     public void getData(){
      System.out.println("Enter Emp name");
      name= InputValidation.getString();
      System.out.println("Enter Emp id");
      id= Integer.parseInt(InputValidation.getInteger());
      callMe();
    }
     public static char getChar(){
				Scanner scn= new Scanner(System.in);
				char ch=scn.next().toLowerCase().charAt(0);
				if(!(ch=='y'||ch=='Y'||ch=='n'||ch=='N')){
				System.out.println("Enter only YES/NO");
                               ch= getChar(); }
			return ch;
				}

}










o/p:
you want to add emp details
y
Enter Emp name
bee
Enter Emp id
123
you want to add emp details
y
Enter Emp name
kira
Enter Emp id
23456
you want to add emp details
y
Enter Emp name
been
Enter Emp id
899
you want to add emp details
n
EMployeeName= been EmployeeID= 899
EMployeeName= been EmployeeID= 899
EMployeeName= been EmployeeID= 899

推荐答案

您的代码中有一个错误的递归循环。方法 main 调用 callMe ,然后调用 getData 。但是,当 getData 已收集其输入数据时,它又会调用 callMe ,然后调用 getData ,依此类推。
You have a bad recursive loop in your code. Method main calls callMe, which then calls getData. However, when getData has collected its input data, it, in turn, calls callMe, which then calls getData, and so on.


这篇关于在我的程序哈希表显示最后一次再次输入Nd再次...它不显示我输入的所有输入,我不认识错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆