Collections 如何使用Java流api将集合的属性检索为字符串集合

Collections 如何使用Java流api将集合的属性检索为字符串集合,collections,java-8,java-stream,Collections,Java 8,Java Stream,我有一个类别列表,其中包含许多属性,如代码、名称、描述、超级类别、productlist等。现在我想迭代它,检索每个类别的代码,并将其存储在字符串列表中。这就是我用老办法做的。我想知道是否可以用Java8流以更好、更干净、更高效的方式实现这一点 List<Category> categories = categoryService.getCategoriesForProductCode(productCode); List<String> categoryCodes =

我有一个类别列表,其中包含许多属性,如代码、名称、描述、超级类别、productlist等。现在我想迭代它,检索每个类别的代码,并将其存储在字符串列表中。这就是我用老办法做的。我想知道是否可以用Java8流以更好、更干净、更高效的方式实现这一点

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

if(CollectionUtils.isNotEmpty(categories)){
     for(Category cat : categories){
        categoryCodes.add(cat.getCode);
     }
}
List categories=categoryService.getCategoriesForProductCode(productCode);
List categoryCodes=new ArrayList();
if(CollectionUtils.isNotEmpty(类别)){
对于(类别类别:类别){
categoryCodes.add(cat.getCode);
}
}
您可以这样做

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

@Hadi,更具体地说是操作
.collect(Collectors.toList())
应更改为
.collect(Collectors.toCollection(ArrayList::new))List categoryCodes=new ArrayList()
在其示例代码段中。