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

Java中如何检查KeyBox对象的boolean数组元素是否为false?

问题分析

你的代码存在两处关键错误:

  1. Arrays.asList(box.cells)处理基本类型数组boolean[]时,不会将数组拆分为单个boolean元素,而是把整个数组作为List的唯一元素。后续stream操作的是boolean[]对象,而非数组内的boolean值。
  2. findAny().equals("false")逻辑错误:一是将Optional对象与字符串"false"比较,类型不匹配;二是就算拿到boolean值,也应该直接和boolean类型的false比较,而非字符串。
正确实现方案

根据你“默认数组元素都是false,期望输出true”的需求,分两种场景给出实现:

场景1:检查数组中是否存在至少一个false元素

import java.util.Arrays;

public class PutKey {
    public static void put(KeyBox box) {
        boolean hasFalse = Arrays.stream(box.cells).anyMatch(b -> b == false);
        System.out.println(hasFalse);
    }
}

场景2:检查数组中所有元素都是false

import java.util.Arrays;

public class PutKey {
    public static void put(KeyBox box) {
        boolean allFalse = Arrays.stream(box.cells).allMatch(b -> b == false);
        System.out.println(allFalse);
    }
}
补充说明
  • 使用Arrays.stream(box.cells)可直接将基本类型数组转换为BooleanStream,避免Arrays.asList处理基本类型数组的陷阱,同时处理效率更高。
  • 由于boolean数组默认值为false,上述两种实现都会输出true,符合你的预期。

内容的提问来源于stack exchange,提问作者potapov.alexey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:42:40