将布尔对象数组转换为布尔原始数组?

发布于 2024-10-31 14:50:21 字数 537 浏览 0 评论 0原文

我有一个 Boolean 类型的 ArrayList,需要将其作为 boolean[] 进行操作,因为我正在尝试使用:

AlertDialog builder;
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { ... });

但是,虽然我可以创建一个 Boolean 对象数组,但我找不到一种有效的方法来将此对象数组转换为原始数组构建器函数需要的(我能想到的唯一方法是迭代对象数组并构建一个新的原始数组)。

我正在从 ArrayList 检索对象数组,如下所示:

final Boolean[] checkedItems = getBoolList().toArray(new Boolean[getBoolList().size()]);

我可以用 ArrayList 做些什么吗?或者我是否缺少明显的转换/转换方法?

任何帮助表示赞赏!

I have an ArrayList of type Boolean that requires to be manipulated as a boolean[] as I am trying to use:

AlertDialog builder;
builder.setMultiChoiceItems(items, checkedItems, new DialogInterface.OnMultiChoiceClickListener() { ... });

However, while I can create a Boolean object array, I cannot find an efficient way to covert this object array to a primitive array that the builder function calls for (the only method I can come up with is to iterate over the Object array and build a new primitive array).

I am retrieving my Object array from the ArrayList as follows:

final Boolean[] checkedItems = getBoolList().toArray(new Boolean[getBoolList().size()]);

Is there something I can do with my ArrayList? Or is there an obvious casting/conversion method that I am missing??

Any help appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情栀口红 2024-11-07 14:50:21

您没有遗漏任何内容,唯一的方法是迭代列表,恐怕是

一个(未经测试的)示例:

private boolean[] toPrimitiveArray(final List<Boolean> booleanList) {
    final boolean[] primitives = new boolean[booleanList.size()];
    int index = 0;
    for (Boolean object : booleanList) {
        primitives[index++] = object;
    }
    return primitives;
}

编辑(根据 Stephen C 的评论):
或者您可以使用第三方实用程序,例如 Apache Commons ArrayUtils:

http://commons.apache。 org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html

You aren't missing anything, the only way to do it is to Iterate over the list I'm afraid

An (Untested) Example:

private boolean[] toPrimitiveArray(final List<Boolean> booleanList) {
    final boolean[] primitives = new boolean[booleanList.size()];
    int index = 0;
    for (Boolean object : booleanList) {
        primitives[index++] = object;
    }
    return primitives;
}

Edit (as per Stephen C's comment):
Or you can use a third party util such as Apache Commons ArrayUtils:

http://commons.apache.org/lang/api-2.5/org/apache/commons/lang/ArrayUtils.html

泛泛之交 2024-11-07 14:50:21

使用 Guava,您可以执行 boolean[] array = Booleans.toArray(getBoolList());

Using Guava, you can do boolean[] array = Booleans.toArray(getBoolList());.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文