Java 如何访问树映射中的特定元素?

Java 如何访问树映射中的特定元素?,java,object,elements,treemap,Java,Object,Elements,Treemap,我使用了一个树形图向我的系统中添加数据。 我希望用户能够更改已添加到系统中的对象中的某些值。 为了让用户选择他/她想要更改的值,我已使用此选项将其打印到屏幕上 for(Employee employee : employeeMap.values()) { System.out.println("Employe no :" +x+": "+employee); x++; } 然后,为了访问用户选择的树状图中的objects元素,我尝试使用以下方法: System.out.pri

我使用了一个树形图向我的系统中添加数据。 我希望用户能够更改已添加到系统中的对象中的某些值。 为了让用户选择他/她想要更改的值,我已使用此选项将其打印到屏幕上

for(Employee employee : employeeMap.values())
{
    System.out.println("Employe no :" +x+": "+employee);
    x++;
}
然后,为了访问用户选择的树状图中的objects元素,我尝试使用以下方法:

 System.out.println("this employee @@@@@##### is no: "+employeeMap.get(x));
这就是我在ArrayList中成功使用的方法,但它似乎不起作用。使用这种方法时,所有的值似乎都为null


有人能告诉我一个更好的方法吗。

基本上,您可以通过键访问地图值

在您的代码片段employeeMap.get(x)中,“x”看起来不像键。向我们展示您如何填充employeeMap

已更新

由于您将员工id用作键,因此可以使用它来检索值

for (Employee employee : employeeMap.values()) {
    System.out.println("Employe no :" +employee.getRandomIDno()+": "+employee);
    Object thekey = employee.getRandomIDno();
}
后来呢,

System.out.println("this employee @@@@@##### is no: "+employeeMap.get(thekey));    

访问映射中的条目时,必须使用键,而不是ArrayList中的索引。如果该键不存在,您将返回null,这就是您所看到的。在本例中,您已经可以访问
for
循环中的
employee
对象,因此不需要从映射中再次获取它

您可能希望使用
employeeMap.entrySet()
一次迭代键和值,然后您可以说
employeeEntry.getKey()
之类的话来查看给定项的键,如下所示(省略泛型,因为我不知道您的密钥类型,并且假设密钥是员工编号):


Map是键值对。您不能使用任何索引访问Map中的值(就像您使用x并在循环x++中递增它一样)。您需要使用在插入数据时输入的键u。我建议您使用以下方法

for(String key:employeeMap.keySet())
{
    System.out.println("Employe no :" +x+": "+employee.get(key));
    x++;
}

在访问employeeMap的值之前,您是否已将数据放入employeeMap?是的,我有这样的方法:Employee=新员工(随机编号、fName、sName、性别、dPayLevel);employeeMap.put(随机编号、员工);@Binyomin:你必须传递键才能得到值。我不认为x是键,但出于其他目的索引是randomIDno是带有随机生成值的变量?randomIDno是正在使用的键我该如何编码它使用键访问对象元素??谢谢这样theEmployee=new Employee(randomIDno,fName,sName,gender,dPayLevel);employeeMap.put(randomIDno,theEmployee);我喜欢你的想法,但当我把它输入到我的系统中时,我得到了错误“找不到符号方法get int”我将键的值从字符串改为int,因为我的键被输入为int值
for(String key:employeeMap.keySet())
{
    System.out.println("Employe no :" +x+": "+employee.get(key));
    x++;
}