CodeGym /Blog Java /rawak /Penukaran Array Kepada ArrayList dalam Java
John Squirrels
Tahap
San Francisco

Penukaran Array Kepada ArrayList dalam Java

Diterbitkan dalam kumpulan
Hai! Dalam pelajaran hari ini, kita akan bercakap tentang Cara Memulakan Array Dalam Java dan Cara Menukar Array kepada Arraylist. Tatasusunan ialah lanjutan daripada kelas Container di Jawa dan boleh berguna sebagai cara untuk memegang set jenis data primitif buat sementara waktu apabila kuantiti data diketahui secara khusus. Tetapi Tatasusunan adalah statik apabila dibuat, yang bermaksud bahawa apabila anda menciptanya, anda tidak boleh menukar bilangan item yang dipegangnya. Anda harus ingat bagaimana untuk memulakan tatasusunan dalam java; ia kelihatan seperti ini:

datatype[] isArray;
Di mana datatype ialah sebarang jenis data primitif seperti int, float, long, atau String. Anda juga boleh meletakkan kurungan selepas pengisytiharan seperti:

datatype isArray[];
Jadi bagaimana kita mengambil tatasusunan statik ini dengan beberapa set elemen dan menukarnya kepada ArrayList? Baiklah, mula-mula, mari kita lihat apa itu ArrayList.

Senarai Array

ArrayList mungkin mempunyai nama yang serupa dengan Array tetapi ia dikendalikan dengan cara yang berbeza. Itu kerana ArrayList tidak memanjangkan kelas Container, ia memanjangkan kelas Senarai. Dan ini bermakna segala-galanya dikendalikan secara berbeza. Untuk satu perkara, kerana ia adalah Senarai, anda boleh memanipulasinya secara berbeza. Anda boleh menambah atau mengurangkan saiz ArrayList menggunakan add(element) , yang meletakkan elemen pada penghujung Senarai dan menambah saiz satu jika perlu. Atau anda boleh menggunakan trimToSize()yang mengalih keluar sebarang indeks kosong pada penghujung dan memangkas ArrayList kepada saiz semasanya. Oleh itu, anda boleh melihat bahawa terdapat beberapa kelebihan untuk menggunakan ArrayList dan bukannya hanya tatasusunan. Seterusnya kami akan menunjukkan kepada anda dua kaedah untuk menukar daripada Array kepada ArrayList dan cara untuk kembali semula jika anda perlu.

Bergerak dari Array ke ArrayList dan ArrayList ke Array di Jawa

Jadi, katakan anda telah menulis program untuk menyimpan inventori bilangan kacang dan bolt yang ada pada syarikat anda untuk membaiki pokok kucing. Selama bertahun-tahun, anda hanya memerlukan 30 jenis yang berbeza daripadanya, jadi mudah untuk hanya menggunakan tatasusunan untuk menjejakinya. Tetapi kini anda mempunyai pelanggan baru yang memerlukan anda menyimpan 5 jenis tambahan. Bagaimanakah anda boleh menukar program anda dan menyimpan semua data anda, DAN menghalang diri anda daripada melakukan perkara ini lagi apabila anda mengambil pelanggan lain? betul! Sebuah ArrayList! Jadi bagaimana anda menukar Array Java kepada ArrayList? Terdapat tiga kaedah. Menggunakan kaedah .asList() Tatasusunan Java mempunyai alat hebat yang boleh anda lihat apabila anda melihat API yang dipanggil .asList() . Jadi anda boleh menulis dalam ini:

boltInventory.asList(bolts);
Masalah dengan kaedah ini ialah ia tidak mencipta ArrayList yang benar. Apa yang dilakukannya ialah mencipta Senarai yang saiznya tetap dan tidak boleh diubah. Jadi anda masih tidak boleh menukar saiz secara dinamik. Cuba menambah atau mengalih keluar elemen akan menyebabkan pengecualian. Jadi, walaupun ini mempunyai kegunaannya, ia bukan penukaran sebenar. Tetapi kita boleh menggunakan ini. Menggunakan .asList() sebagai Argumen Ini ialah cara kedua untuk menukar tatasusunan kepada senarai dalam Java. Oleh kerana kaedah .asList() mencipta Senarai, kami boleh menggunakannya untuk menghantar rujukan kepada ArrayList sebenar kami. Berikut ialah cara untuk memulakan ArrayList:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>();
Ini akan mencipta ArrayList yang mempunyai sepuluh sel kosong. Walau bagaimanapun, () pada penghujungnya boleh digunakan untuk menyampaikan hujah untuk mengisi ArrayList. Jadi menggabungkan dengan kaedah .asList , anda mempunyai:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>(Arrays.asList(bolts));
Ini menghantar Senarai yang dibuat oleh kaedah .asList() ke dalam ArrayList, jadi kini anda boleh memanipulasinya secara dinamik mengikut keperluan. Menggunakan kaedah Collections.addAll() Cara lain untuk menukar Array kepada ArrayList dalam Java ialah menggunakan kaedah ini. Ia menghantar kandungan Array ke ArrayList. Sintaks generik untuk kaedah ini ialah:

Collections.addAll(c, T);
Di mana c ialah destinasi dan T ialah apa yang dilalui. Jadi untuk contoh kami, sintaks akan kelihatan seperti ini:

ArrayList<Integer> boltsInventory = new ArrayList<Integer>():
Collections.addAll(boltsInventory, bolts);
Ini akan menghantar keseluruhan kandungan bolt Array kepada ArrayList baharu. Menukar ArrayList kepada Array Mungkin ada masa anda perlu menukar ArrayList kepada Array dalam Java. Jika anda melakukannya, ArrayList mempunyai kaedah .toArray(a) , di mana a ialah destinasi. Jadi untuk contoh kami, sintaksnya ialah:

Integer boltsInventoryArray[] = new Integer{boltsInventory.size()];
// this ensures the newly created array is of the same size as the ArrayList
boltsInventoryArray = boltsInventory.toArray(boltsInventoryArray);
Apabila anda menukar senarai kepada tatasusunan dalam Java seperti ini, anda sedang mencipta salinan dalam. Iaitu, semua rujukan kepada Array adalah berbeza daripada rujukan kepada ArrayList. Jadi anda boleh memanipulasi data dalam Array tanpa mengubah data yang disimpan dalam ArrayList. Ia berguna untuk menukar senarai java kepada tatasusunan apabila anda perlu menguji data.

Kesimpulan

Tatasusunan sangat berguna untuk akses pantas dan manipulasi pantas set data yang lebih kecil, tetapi ketidakupayaan untuk menukar saiznya bermakna ia kehilangan kecekapan dengan cepat untuk penggunaan jangka panjang. ArrayList memberi anda fleksibiliti dan keupayaan untuk memasukkan dan mengeluarkan nod seperti yang diperlukan. Mempelajari cara menukar Tatasusunan Java kepada Senarai akan meningkatkan kecekapan keseluruhan program anda dan memperbaik masa jalannya juga.
Komen
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION