gpt4 book ai didi

java - 如何访问哈希表中的值

转载 作者:行者123 更新时间:2023-11-30 03:42:16 25 4
gpt4 key购买 nike

我想访问哈希表中的值,但在我的代码中存在异常。我想访问 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;

}

现在我使用了一个哈希表,我想使用迭代器访问哈希表的值,这是我的主类的代码,我创建了哈希表的对象 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() 的构造函数中传递的值;但我无法做到这一点

最佳答案

您正在迭代您的字符串键。如果您想要迭代 StudentReg 类的所有对象,则需要迭代 values()

我强烈建议向集合添加类型参数。这样您的代码将无法编译,您会立即看到问题所在。

Hashtable<String, StudentReg> T
= new Hashtable<String, StudentReg>();

或者如果使用 java 7 或更高版本

Hashtable<String, StudentReg> T = new Hashtable<>();  

然后您可以使用 foreach 构造迭代 values()

for (StudentReg s : T.values()) {
System.out.println(T.RegNo + " " + T.Program + " " + T.FName));
}

关于java - 如何访问哈希表中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577970/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com