Sau*_*mar 3 java java-8 java-stream
我将以下代码转换为java 8代码.我想知道我是否做得恰到好处还是有其他不错的方法.
Java 7
for (final Category category : categories) {
final List<Category> subCategories = getCategories(category);
if (subCategories != null) {
currentLevel.addAll(subCategories);
}
}
Run Code Online (Sandbox Code Playgroud)
Java8
categories.stream().map(category -> getCategories(category)).filter(list->list!=null).flatMap(cat -> cat.parallelStream()).collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
任何java 8方式将下面的代码解析成紧凑的形式.
while (CollectionUtils.isNotEmpty(currentLevel)) {
for (final Iterator<Category> iterator = currentLevel.iterator(); iterator.hasNext();) {
final Category category = iterator.next();
if (result == null) {
result = new HashSet<Category>();
}
if (!result.add(category)) {
// avoid cycles by removing all which are already found
iterator.remove();
}
}
if (currentLevel.isEmpty()) {
break;
}
final Collection<Category> nextLevel = getAllSubcategories(currentLevel);
currentLevel = nextLevel;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
165 次 |
| 最近记录: |