如何使用Java Stream api

时间:2018-03-17 07:50:43

标签: collections java-8 java-stream

我有一个类别列表,其中包含许多属性,如代码,名称,描述,超类别,产品列表等。现在我想迭代它并检索每个类别的代码和存储将其添加到列表中串。这就是我用老派的方式做的事情。我想知道是否可以使用Java 8 Streams以更好,更清晰和有效的方式完成此任务。

List<Category> categories = categoryService.getCategoriesForProductCode(productCode);
List<String> categoryCodes = new ArrayList<>();

if(CollectionUtils.isNotEmpty(categories)){
     for(Category cat : categories){
        categoryCodes.add(cat.getCode);
     }
}

1 个答案:

答案 0 :(得分:3)

你可以这样做

   categoryCodes  = categories.stream()
                  .map(category->catgory.getCode()) // .map(Category::getCode)
                  .collect(Collectors.toList());