Rumah >Java >javaTutorial >Bagaimana untuk menukar ArrayList Integer dengan Cekap kepada Array int Primitif di Jawa?

Bagaimana untuk menukar ArrayList Integer dengan Cekap kepada Array int Primitif di Jawa?

Susan Sarandon
Susan Sarandonasal
2024-12-11 16:44:12952semak imbas

How to Efficiently Convert an ArrayList of Integers to a Primitive int Array in Java?

Menukar ArrayList of Integer to Primitive int Array

Di Java, terdapat berbilang pendekatan untuk menukar ArrayList yang mengandungi objek Integer kepada int primitif [] tatasusunan.

Satu kaedah, seperti yang dicuba dalam kod coretan yang disediakan, adalah menggunakan kaedah toArray(). Walau bagaimanapun, ini akan membuang ralat masa kompilasi kerana jenis tatasusunan yang tidak serasi. Untuk menyelesaikan masalah ini, nyatakan jenis tatasusunan yang akan dikembalikan, seperti yang ditunjukkan di bawah:

int[] n = (int[])x.toArray(new int[x.size()]);

Pendekatan alternatif, terutamanya berguna dengan Java 8, ialah memanfaatkan API Strim:

int[] arr = list.stream().mapToInt(i -> i).toArray();

Kaedah ini menukar setiap elemen dalam senarai kepada nilai int yang sepadan, menghasilkan tatasusunan yang diingini.

Anda juga boleh menggunakan intValue kaedah untuk menukar secara eksplisit setiap objek Integer:

int[] arr = list.stream().mapToInt(Integer::intValue).toArray();

Untuk mengendalikan potensi rujukan nol, tambahkan penapis pada saluran paip strim:

int[] arr = list.stream().filter(Objects::nonNull).mapToInt(i -> i).toArray();

Dengan teknik ini, anda boleh menukar ArrayList dengan cekap daripada Integer kepada tatasusunan int primitif di Jawa.

Atas ialah kandungan terperinci Bagaimana untuk menukar ArrayList Integer dengan Cekap kepada Array int Primitif di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn