我有一个名为Employee的POJO类,带有empName&薪水。我有一个Employee集合作为具有员工详细信息的对象。现在我想将特定字段的值重置为某个常用值。在这种情况下,我想为列表中的所有员工项目分配工资为“0”。
List<Employee> empList;
public class Employee{
private String empName = "";
private int empSalary = "";
}
而不是使用For / Foreach迭代员工列表,并为列表中的所有项目分配所需的值。
使用任何CollectionUtils(Apache commons或任何其他)是否有任何简单有效的方法来实现相同的目的。
答案 0 :(得分:5)
从Java 7开始,对于集合的“批量”更新没有简洁的方法。希望Java 8会更好,但是现在我建议查看像guava这样的库:http://code.google.com/p/guava-libraries/wiki/FunctionalExplained
答案 1 :(得分:2)
作为类变量的工资将自动初始化为其默认值0。一旦创建了对象,就会发生这种情况,而不管它是否存在于某个集合中。
如果你想要一些其他常用值,你可以在构造函数中适当地初始化它。
如果要在创建对象并将其添加到集合后修改对象的属性,则除了迭代集合并显式设置值之外别无其他方法。
答案 2 :(得分:2)
我相信你可以使用Commons Collections(你建议使用它)来做到这一点:
CollectionUtils.forAllDo(empList, new Closure() {
public void execute(Object empObject) {
Employee emp = (Employee)empObject;
emp.setEmpSalary(salaryValueToSet);
}
});