【发布时间】:2018-04-19 22:19:35
【问题描述】:
我想重构以下代码使其更具可读性。有没有办法使用流和 lambdas 让代码更具可读性,或者让代码保持原样有意义吗?
List<Data> data = ...;
Map<String, Task> tasks = ...;
for (Data datum : data) {
String compKey = datum.getCompKey();
for (Map.Entry<String, Task> taskEntry : tasks.entrySet()) {
String taskKey = taskEntry.getKey();
Task task = taskEntry.getValue();
if (taskKey != null && task != null) {
String subKey = Joiner.on(".").useForNull("null").join(Arrays.copyOfRange(taskKey.split("\\."), 0, 3));
if (compKey.equals(subKey)) {
task.setVal1(datum.getVal1());
task.setVal2(datum.getVal2());
task.setVal3(datum.getVal3());
break;
}
}
}
}
【问题讨论】:
标签: java dictionary java-8 refactoring java-stream