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

如何用更少代码实现MaterialButton列表状态数组的生成?

简洁实现按钮状态数组的几种写法

下面是几种更简洁的写法来实现你想要的效果:

  • Java 8+ Stream API 写法
    这是最简洁且现代的写法,用函数式编程替代传统循环,代码紧凑易读:
ArrayList<MaterialButton> buttons = new ArrayList<>();

String[] buttonStates = buttons.stream()
                               .map(button -> String.valueOf(button.isChecked()))
                               .toArray(String[]::new);
  • forEach + AtomicInteger 替代写法
    如果不想用Stream,也可以用forEach结合原子类来追踪索引,不过需要引入java.util.concurrent.atomic.AtomicInteger:
ArrayList<MaterialButton> buttons = new ArrayList<>();
String[] buttonStates = new String[buttons.size()];
AtomicInteger idx = new AtomicInteger(0);
buttons.forEach(btn -> buttonStates[idx.getAndIncrement()] = String.valueOf(btn.isChecked()));
  • 优化后的传统循环
    如果偏好传统循环,可以提取size避免重复计算,让代码更紧凑:
ArrayList<MaterialButton> buttons = new ArrayList<>();
String[] buttonStates = new String[buttons.size()];
int btnCount = buttons.size();
for (int i = 0; i < btnCount; i++) {
    buttonStates[i] = String.valueOf(buttons.get(i).isChecked());
}

其中Stream API的写法是最推荐的,它不仅代码最短,还能体现现代Java的编程风格,可读性也不差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:40:26