You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无需循环将List<CategoriesModel>中的名称克隆到String数组?

无需显式循环提取属性的方案

当然可以!在Java 8及以后的版本里,Stream API就是干这个的——它能帮你用声明式的代码完成这类集合转换,完全不用写手动的for循环。

直接上代码:

String[] namesList = categoriesModelList.stream()
    .map(CategoriesModel::getName) // 提取每个对象的name属性
    .toArray(String[]::new);       // 将流转换为String数组

代码解释:

  • stream():把你的List<CategoriesModel>转换成一个可操作的流对象
  • map(CategoriesModel::getName):这一步是"映射"操作,把流里的每个CategoriesModel对象都转换成它的name属性值(这里用的是方法引用,和lambda表达式model -> model.getName()效果完全一样)
  • toArray(String[]::new):最后把处理后的流转换成String[]数组,String[]::new是构造方法引用,用来创建对应长度的数组

如果之后你需要的是List<String>而不是数组,也可以用这个写法:

List<String> namesList = categoriesModelList.stream()
    .map(CategoriesModel::getName)
    .collect(Collectors.toList());

对比你原来的循环写法,Stream API的代码更简洁直观,能让你一眼看明白这段代码的核心意图——提取所有name属性,而不用关心循环的细节。

内容的提问来源于stack exchange,提问作者Taha Sami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 16:24:07