【发布时间】:2016-05-26 21:05:25
【问题描述】:
我有一个工作状态列表。每个 workStatus 都有其名称和时间。我可以在遍历每个 workStatus 时执行 workStatus.getName()。
for (workStatus ws: workStatuses) {
String name = ws.getName();
}
接下来我有一个名为 nameList 的名称列表。
List<String> nameList = new ArrayList<String>();
nameList.add("Completed");
nameList.add("Failed");
现在我正在使用 HashMap 来计算每个名称的 workStatuse 数。所以我必须
- 遍历工作状态。
- 对于每个 workStatus,找到名称。
- 检查该名称是否存在于我的名称列表中。
- 如果是,则增加 该名称的 Workstatus 数量并将其放在 HashMap 上。
我做了什么:
Integer numberOfWorkStatus =0;
Map<String,Integer> hm = new HashMap<String,Integer>();
for(WorkStatus ws: workStatuses) {
if (ws.getName()!=null && nameList.contains(ws.getName())) {
numberOfWorkStatus++;
hm.put(ws.getName(), numberOfWorkStatus);
}
}
return hm;
如果我以正确的方式做事,谁能建议我?
【问题讨论】:
-
您的代码似乎没有“计算每个名称的 workStatuses 数”,例如
totalCount似乎是为任何名称共享的,还是我误解了? -
Loris 未共享。每个名称可以有不同数量的 workStatuse。这就是我想要的。我已经更改了变量名称以使其现在提供更多信息。现在有意义吗?
-
我只是说您的代码正在共享每个名称的计数,所以这是不正确的。看看提出的答案。