【发布时间】:2019-06-03 09:24:25
【问题描述】:
我是 Scala 新手,我正在尝试在 Scala 中迭代列表时转换和添加一个对象,但在语法和可能的概念方面都遇到了困难。
我想像在 JAVA 中一样实现如下所示。
public Set<Manager> promoteEmployeesToManager(List<Employee> employees) {
Set<Manager> managers = new HashSet<Manager>();
for(employee: employees){
if(employee.getExprience() > 5) {
managers.add(promoteEmployee(employee));
}
}
return managers;
}
public Manager promoteEmployee(Employee employee){
return new Manager(employee);
}
我尝试了下面的代码,但它不起作用。在saveNewManagers(newManagers.toArray); 的步骤中,newManagers 仍然是空的。
private def processEmployeePromotion(employees : List[Employee]) {
val newManagers: Set[Manager] = Set()
employees.asScala.map(employee => promoteEmployee(newManagers, employee))
saveNewManagers(newManagers.toArray);
}
那么promoteEmployee方法是这样的:
private def promoteEmployee (newManagers : Set[Manager], employee: Employee){
if(employee.getExprience() > 5) {
managers+.(new Manager(employee));
}
}
【问题讨论】:
-
在您的promoteEmployee方法中,您将新经理添加到一个不存在的集合中,这个名称正确吗?
标签: scala list loops set scala-collections