Pertanyaan Meliputi objek array Boolean ke boolean primitive array?


Saya memiliki ArrayList tipe Boolean yang perlu dimanipulasi sebagai boolean [] seperti yang saya coba gunakan:

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

Namun, sementara saya dapat membuat array objek Boolean, saya tidak dapat menemukan cara yang efisien untuk menyembunyikan array objek ini ke susunan primitif yang diperlukan fungsi pembangun (satu-satunya metode yang dapat saya kemukakan adalah melakukan iterasi terhadap larik Objek dan membangun array primitif baru).

Saya mengambil array Object saya dari ArrayList sebagai berikut:

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

Apakah ada yang bisa saya lakukan dengan ArrayList saya? Atau apakah ada metode pengecoran / konversi yang jelas yang saya lewatkan ??

Bantuan apa pun dihargai!


4
2018-04-11 00:22


asal


Jawaban:


Anda tidak melewatkan apa pun, satu-satunya cara untuk melakukannya adalah dengan beralih ke daftar yang saya takutkan

Contoh (Belum Diuji):

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;
}

Sunting (sesuai komentar Stephen C): Atau Anda dapat menggunakan util pihak ketiga seperti Apache Commons ArrayUtils:

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


9
2018-04-11 00:37



Menggunakan Jambu biji, Anda dapat melakukan boolean[] array = Booleans.toArray(getBoolList());.


4
2018-04-11 00:42