【发布时间】:2014-10-26 21:07:50
【问题描述】:
我想访问哈希表中的值,但在我的代码中有一个异常。我想访问hastable中(KEY,VALUE)中另一个类的构造函数值这是我的类的代码
public class StudentReg {
public String RegNo,Program ,FName;
StudentReg(int Roll , String Program, String FName)
{
this.RegNo = " Fall2k14_ " + Roll + " " + Program;
this.FName = FName;
this.Program = Program;
}
现在我使用了一个哈希表,我想在其中使用迭代器访问 hastable 的值这是我的主类的代码我已经创建了一个哈希表对象 T 并输入了键和值集和获取迭代器中的值
public static void main(String[] args){
Hashtable T = new Hashtable();
T.put("Ahmed", new StudentReg(123,"BS(CS)","Murtaza"));
T.put("Fahad", new StudentReg(456,"BE(EE)","...."));
T.put("Alan", new StudentReg(769,"BBA","Rashee"));
Set set =T.keySet(); // get set-view of keys
// get iterator
Iterator itr = set.iterator();
while(itr.hasNext()) {
StudentReg S3 = (StudentReg) itr.next();
System.out.println(S3 + ": " +T.get(S3.RegNo+""+S3.Program+""+S3.FName));
}
此时System.out.println(S3 + ": " +T.get(S3.RegNo+""+S3.Program+""+S3.FName));我想访问在 StudentReg() 的构造函数中传递的值; 但我无法做到这一点
【问题讨论】:
-
使用 Bare Collections 有什么意义吗?添加
以便避免强制转换迭代器。 -
你收到什么样的异常?将异常消息粘贴到您的问题中。
-
java.lang.ClassCastException
-
它显示的是地址而不是数据 Fahad: hashtable.StudentReg@15db9742 Alan: hashtable.StudentReg@6d06d69c Ahmed: hashtable.StudentReg@7852e922