如何实现让用户输入用户名作为Hashtable键并返回对应Employee对象值
解决Hashtable键存在性校验与取值问题
嘿,这事儿其实超简单的!Hashtable本身就给你准备好了判断键是否存在的方法,完全不用你自己手动写比较逻辑~
核心方法:containsKey()
Hashtable的containsKey(Object key)方法就是专门干这个的:你把用户输入的用户名传进去,它会自动帮你判断这个用户名是不是表中的某个键。如果存在就返回true,不存在就返回false。
而且对于String类型的键,它会自动调用String的equals()方法做内容比较(不是用==比较内存地址),所以只要输入的用户名和表中键的内容一致,就能匹配上,完美符合你的需求。
完整代码示例
假设你已经用Scanner或者其他方式获取了用户输入的用户名,代码可以这么写:
// 获取用户输入的用户名(这里替换成你的输入逻辑,比如用Scanner) Scanner scanner = new Scanner(System.in); System.out.print("请输入用户名:"); String inputUsername = scanner.nextLine(); // 校验用户名是否存在,并获取对应的Employee对象 if (theTable.containsKey(inputUsername)) { Employee targetEmployee = theTable.get(inputUsername); // 这里可以对获取到的Employee做任何操作,比如打印信息 System.out.println("找到员工:" + targetEmployee.getEmployeeId() + " - " + targetEmployee.getName()); } else { System.out.println("抱歉,输入的用户名不存在!"); }
小补充
顺便提一句,Hashtable是比较老旧的集合类了,如果你的项目是新开发的,不需要强制线程安全的话,更推荐用HashMap;如果需要线程安全,ConcurrentHashMap的性能会比Hashtable更好~不过不管用哪个,containsKey()和get()的用法都是一样的哦!
内容的提问来源于stack exchange,提问作者user5463745
相关产品推荐
相关产品推荐

