Java 无法将元素添加到ArrayList

Java 无法将元素添加到ArrayList,java,arraylist,Java,Arraylist,我正在做这个 /* *要更改此许可证标题,请在“项目属性”中选择“许可证标题”。 *要更改此模板文件,请选择工具|模板 *然后在编辑器中打开模板。 */ 导入java.util.ArrayList; 导入java.util.HashMap; 导入java.util.List; 导入java.util.Map; //员工信息 班级员工{ //它是每个节点的唯一id; //此员工的唯一id 公共int id; //这个员工的重要价值 公共利益的重要性; //直接下属的id 公开列出下属名单; };

我正在做这个

/*
*要更改此许可证标题,请在“项目属性”中选择“许可证标题”。
*要更改此模板文件,请选择工具|模板
*然后在编辑器中打开模板。
*/
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入java.util.Map;
//员工信息
班级员工{
//它是每个节点的唯一id;
//此员工的唯一id
公共int id;
//这个员工的重要价值
公共利益的重要性;
//直接下属的id
公开列出下属名单;
};
类解决方案{
公共int getImportance(列出员工,int id){
映射值=新的HashMap();
Map substances=newhashmap();
//将价值和下属放入地图
用于(员工:员工){
int e_id=employee.id;
int value=employee.importance;
列表下属=员工。下属;
value.put(id,value);
下属。放置(id,下属);
}
//查找子线条并将值相加
List subs=substances.getOrDefault(id,new ArrayList());
int total_value=values.getOrDefault(id,0);
用于(int sub_id:sub){
total_value=total_value+values.getOrDefault(子_id,0);
}
返回总的_值;
}
}
公共级Sixninezero{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
//此处的TODO代码应用程序逻辑
员工e1=新员工();
e1.id=3;
e1.重要性=3;
List_e1=新的ArrayList();
e1.下属=列表_e1;
员工e2=新员工();
e2.id=2;
e2.2=5;
List_e2=new ArrayList();
表2.添加(3);
e2.下属=列表_e2;
List employees=new ArrayList();
增加(e1);
增加(e2);
溶液=新溶液();
int result=solution.getImportance(员工,2);
系统输出打印项次(结果);
}
}

我创建了两个Employee对象并将它们添加到名为
employees
的ArrayList中,然后将
employees
传递给
getImportance()
方法。在这种方法中,for循环将遍历
员工
,并将
id
和相应的
值(重要性)
对放入名为
的映射中,其操作与
下属
映射类似。因此,每个
下属
都应该有2个元素,因为
员工
有两个对象。但它总是有一个元素(第二个)。我认为我在循环ArrayList时做得对,代码有什么问题吗

每次通过循环时,您都将方法参数中的
id
放入
值映射中。
看起来您应该这样做:

values.put( e_id, value );
subordinates.put( e_id, subordinate ); 

那就应该成功了

两名员工的员工Id是什么?是一样的吗?将您正在添加到员工列表中的内容作为employee data.oops共享!我做更改时忘记将所有id更改为e_id。非常感谢你!
values.put( e_id, value );
subordinates.put( e_id, subordinate );